Как мы решили проблему с индексацией сайта в России: TLS, ТСПУ и HTTP/2
При запуске каталога Telegram-каналов tg-sliv.ru мы столкнулись с неочевидной проблемой: сайт отлично открывался у пользователей, но Яндекс.Вебмастер упорно показывал фатальную ошибку «Не удалось подключиться к серверу из-за ошибки DNS». При этом ручная проверка ответа сервера давала 200 OK.
Разбираемся, что случилось и как мы это исправили.
Что такое ТСПУ и при чём тут TLS
ТСПУ (технические средства противодействия угрозам) — это оборудование, установленное у российских операторов связи по требованию закона о суверенном интернете. Оно анализирует трафик на лету и может блокировать или замедлять соединения по различным признакам.
Одним из таких признаков оказался TLS 1.3 с включённой функцией 0-RTT (Zero Round Trip Time). Это оптимизация протокола, которая позволяет отправлять данные ещё до завершения handshake — звучит хорошо, но именно этот паттерн трафика ТСПУ воспринимает как подозрительный и режет соединение.
В результате складывалась странная ситуация:
Обычные пользователи заходили на сайт нормально (браузеры делали несколько попыток и в итоге устанавливали соединение)
Поисковый робот Яндекса получал таймаут при первой же попытке и фиксировал «ошибку DNS»
Ручная проверка в вебмастере срабатывала, потому что выполнялась из другой точки сети
Что мы попробовали сначала
Первым решением был откат на TLS 1.2 — сайт заработал стабильно, но это не решало проблему с роботом, который ожидает более современные протоколы. Пробовали CDN от Timeweb — не помогло, потому что их серверы находятся в тех же подсетях. Cloudflare тоже не дал результата в нашей конфигурации.
Решение: TLS 1.3 + отключение 0-RTT + HTTP/2
Решение оказалось простым — три строчки в конфиге nginx.
В файле /etc/nginx/nginx.conf:
ssl_protocols TLSv1.2 TLSv1.3;
В файле /etc/nginx/sites-available/ваш-сайт:
listen 443 ssl http2;
ssl_early_data off;
Разберём что делает каждая строка:
ssl_protocols TLSv1.2 TLSv1.3 — включаем оба протокола. TLS 1.2 остаётся для совместимости со старыми клиентами, TLS 1.3 доступен для современных браузеров и поисковых роботов.
ssl_early_data off — отключаем именно 0-RTT, ту самую функцию TLS 1.3, которую детектирует ТСПУ. TLS 1.3 при этом остаётся включённым и работает в стандартном режиме без проблемного паттерна трафика.
http2 в директиве listen — включаем HTTP/2, который работает только поверх TLS и даёт дополнительный прирост производительности за счёт мультиплексирования запросов.
После применения конфига и перезагрузки nginx командой nginx -t && systemctl reload nginx сайт начал стабильно открываться без задержек, а поисковый робот Яндекса получил возможность нормально обходить страницы.
Итог
Проблема оказалась не в DNS и не в недоступности сервера — это была специфика работы ТСПУ, которая блокировала конкретную оптимизацию TLS 1.3. Отключение одной функции (ssl_early_data off) при сохранении всех преимуществ современных протоколов решило проблему полностью.
Если вы столкнулись с похожей ошибкой в Яндекс.Вебмастере и ваш сервер находится на российском хостинге — попробуйте это решение в первую очередь, прежде чем искать проблему в DNS или настройках сервера.
Технологии
Часть 2: Как мы решили проблему с индексацией сайта в России: TLS, ТСПУ и HTTP/2
24.06.2026
4 мин
Сайт работает, но Яндекс пишет «не удалось подключиться из-за ошибки DNS»? Рассказываем как три строчки в конфиге nginx решили эту проблему — причина в ТСПУ и функции 0-RTT протокола TLS 1.3.