623 слов
3 минуты
Отключение ECH в CloudFlare

С недавних пор, а если быть точнее с утра 5 ноября, многие владельцы сайтов столкнулись с проблемой блокировки их ресурсов Роскомнадзором из-за использования технологии Encrypted Client Hello (ECH). Эта функция, включённая по умолчанию в Cloudflare, мешает отслеживанию метаданных соединений, таких как имя сайта (SNI). В результате сайты становятся недоступными для пользователей из России.

Если вы используете бесплатный тариф Cloudflare и хотите отключить ECH, чтобы избежать блокировок, — это руководство для вас. Ниже подробно описан процесс отключения ECH, который, вопреки распространённым слухам, возможно выполнить через API даже на бесплатном тарифе.

Что такое Encrypted Client Hello (ECH)?​#

ECH — это технология, которая скрывает содержимое ClientHello, включая SNI, при установке защищённого соединения (HTTPS). Это улучшает конфиденциальность пользователей, но одновременно усложняет работу систем цензуры, таких как блокировки Роскомнадзора.

Cloudflare активировал поддержку ECH по умолчанию, что стало причиной массовых блокировок ресурсов, использующих эту функцию.

Как отключить ECH на бесплатном тарифе Cloudflare​#

Шаг 1: Получите Zone ID и API Key​#

Для выполнения запросов через API вам потребуются:

  1. Ваша почта — почта, с которой вы подключаетесь к Cloudflare.
  2. Zone ID — это уникальный ID твоей зоны (домена) в Cloudflare
  3. Global API Key — ключ для аутентификации запросов.

Получаем все нужные данные.​#

  • {ID_ZONE} - Вы его можете получить в панели управления вашим доменом.
    • Переходите в дашборд CloudFlare и выбираете свой домен.
    • Как только выбрали в правом меню у вас будет написан ваш Zone ID. enter image description here
  • {GLOBAL_API_KEY} — Для его получения переходите в панель управление ключами. В разделе API Tokens используйте Global API Key или создайте новый API с нужными правами.
    enter image description here

Шаг 2: Установите curl​#

Curl — это инструмент для отправки HTTP-запросов, который понадобится для взаимодействия с API Cloudflare.

  1. На Windows:

    1. Установите Git Bash или скачайте curl с официального сайта.
      • Для CMD
        1. Нажми Win + R.

        2. Введи cmd и нажми Enter.

        3. Проверь версию выполнив команду:

          CMD:

          curl --version
          
      • Для Powershell
        1. Нажми Win + R.

        2. Введи cmd и нажми Enter.

        3. Проверь версию выполнив команду:

          Powershell:

          curl.exe --version
          
  2. На Linux/MacOS: Обычно curl уже установлен. Проверьте, выполнив команду:

    Bash:

    curl --version
    

Шаг 3: Отключите ECH через API​#

Теперь, когда у вас есть Zone ID и API Key, выполните следующую команду:

  • {ZONE_ID} замените на Zone ID Взятого из панели управления dash.cloudflare.com
  • {ACCOUNT_EMAIL} — замените на вашу почту от dash.cloudflare.com.
  • {GLOBAL_API_KEY} — замените на ваш API Key

Windows CMD:

curl -X PATCH "https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/settings/ech" ^
     -H "X-Auth-Email: {ACCOUNT_EMAIL}" ^
     -H "X-Auth-Key: {GLOBAL_API_KEY}" ^
     -H "Content-Type: application/json" ^
     --data "{\"id\":\"ech\",\"value\":\"off\"}"

Windows Powershell:

curl -Method PATCH "https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/settings/ech" `
    -Headers @{
        "X-Auth-Email" = "{ACCOUNT_EMAIL}";
        "X-Auth-Key" = "{GLOBAL_API_KEY}";
        "Content-Type" = "application/json"
    } `
    -Body '{"id":"ech","value":"off"}'

Linux:

curl -X PATCH "https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/settings/ech" \
     -H "X-Auth-Email: {ACCOUNT_EMAIL}" \
     -H "X-Auth-Key: {GLOBAL_API_KEY}" \
     -H "Content-Type: application/json" \
     --data '{"id":"ech","value":"off"}'

Как отключить ECH на Pro-тарифе​#

Если у вас тариф Pro или выше, отключение Encrypted Client Hello (ECH) становится ещё проще. Вам не нужно возиться с командной строкой или API — всё можно сделать прямо через веб-интерфейс Cloudflare.

Инструкция для Pro-тарифа и выше:​#

  1. Авторизуйтесь в Cloudflare.
  2. Выберите ваш сайт.
  3. Зайдите в раздел SSL/TLS.
  4. Перейдите во вкладку Edge Certificates.
  5. Найдите параметр Encrypted Client Hello (ECH).
  6. Просто выключите эту опцию, поставив её в состояние Off. enter image description here

После сохранения изменений доступ к вашему сайту восстановится в течение нескольких минут.

Как проверить отключён ли у вас ECH на сайте?​#

Просто перейдите по адресу: https://dns.google/resolve?name=[ВАШ_ДОМЕН]&type=HTTPS Замените [ВАШ_ДОМЕН] на ваш домен.
Если функция ECH будет включена об этом будет написано.

Часто задаваемые вопросы​#

1. Можно ли отключить ECH через панель Cloudflare на бесплатном тарифе?​#

Нет, в пользовательском интерфейсе Cloudflare отключение ECH доступно только на платных тарифах Pro и выше. Однако через API вы можете отключить эту функцию даже на бесплатном тарифе.

2. Что делать, если сайт уже заблокирован?​#

Если Роскомнадзор уже успел заблокировать ваш сайт, не паникуйте. Есть решение:

  1. Отключите ECH по инструкции выше.
  2. После этого сайт начнёт работать в течение нескольких минут — блокировка снимается автоматически, как только Роскомнадзор видит, что функция отключена.

Нет необходимости ждать долго или применять временные обходные пути вроде VPN или мобильного интернета. Всё исправится почти мгновенно.

3. Повлияет ли отключение ECH на безопасность сайта?​#

Отключение ECH не скажется на безопасности HTTPS-соединений. Ваши данные по-прежнему будут зашифрованы, но некоторые метаданные соединений (например, имя хоста) станут видимы для цензоров.