Вопросы и ответы - Макхост

Проблемы в работе сайта по HTTPS.

Сайт по HTTPS работает нестабильно. В чем проблема и как ее решить?

сегодня, в 12:53
Сотрудник Оксана Покорнюк
 нет комментариев
ОТВЕТЫ НА ВОПРОС (1)
Сотрудник Оксана Покорнюк

     В последнее время часть пользователей и владельцев сайтов в России сталкивается с тем, что отдельные ресурсы по HTTPS (порт TCP/443) открываются нестабильно. Чаще всего сбой проявляется именно на соединениях, использующих TLS 1.3.

     Ключевая особенность проблемы — её избирательность. Один и тот же сайт может без проблем открываться у одних пользователей и быть полностью недоступным у других. Результат зависит от оператора связи, региона, маршрута трафика, браузера и того, как промежуточные узлы сети обрабатывают TLS-соединение.

     На стороне нашей инфраструктуры подтверждённых проблем нет: серверы и каналы связи не ограничивают версии TLS и не фильтруют HTTPS-трафик. Если сайт недоступен лишь у части аудитории, а из других сетей открывается корректно, причина почти всегда находится за пределами сервера — на внешнем маршруте, у магистрального провайдера, оператора связи или на промежуточных устройствах анализа трафика.

 

Как проявляется проблема

Со стороны пользователя это выглядит как ошибка загрузки, сброс соединения, бесконечное ожидание ответа или невозможность установить защищённое HTTPS-соединение. При этом тот же сайт спокойно открывается с другого провайдера, из другой страны, через мобильную сеть или в другом браузере.

Такая картина говорит не о том, что сервер «лежит», а о том, что трафик не проходит на каком-то конкретном участке сети.

 

Почему доступ пропадает выборочно

При установлении HTTPS-соединения браузер и сервер согласуют его параметры: версию TLS, набор шифров и расширения. Этот этап называется TLS-рукопожатием, и начинается он с сообщения ClientHello, которое браузер отправляет серверу.

 

Некоторые промежуточные устройства в сетях операторов обрабатывают отдельные варианты ClientHello некорректно — особенно для TLS 1.3. В итоге часть соединений обрывается или вообще не доходит до сервера, хотя сам сервер исправен и доступен из других сетей.

 

Что можно сделать

Если вы администрируете сайт и получаете массовые жалобы на недоступность у части посетителей, есть две быстрые временные меры. Их можно применять как по отдельности, так и вместе.

 

Вариант 1. Редактирование конфигурации nginx

Смысл меры — убрать поддержку TLS 1.3. Часть пользователей, у которых соединения по TLS 1.3 рвутся на промежуточных узлах, смогут согласовать соединение на TLS 1.2, который реже вызывает проблемы.

 

Пример временной конфигурации для nginx:

ssl_prefer_server_ciphers on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # явно перечисляем версии.

 

Директива ssl_protocols задаёт список поддерживаемых версий TLS. Временное удаление TLS 1.3 помогает сохранить доступность сайта для тех, у кого TLS 1.3 не проходит через внешний маршрут.

 

Дополнительно про HTTP-версии. Для HTTPS-сайтов желательно использовать HTTP/2, если ваша конфигурация его поддерживает. А вот HTTP/3 / QUIC в период нестабильности включать не стоит, если нет уверенности, что он корректно работает для вашей аудитории.

 

Инструкция для ispmanager 6

- В списке сайтов выделите нужный домен и в верхнем меню нажмите Файлы конфигурации.

- Найдите строку, начинающуюся с listen X.X.X.X:443 ssl, и допишите в неё http2.

- Найдите строку ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; и удалите из неё TLSv1.3.

- Нажмите Сохранить и закрыть.


Инструкция для FASTPANEL

Включение HTTP/2:

- Откройте карточку сайта → меню Настройки → вкладка HTTPS.

- Поставьте галочку напротив HTTP2.

- Снимите галочку с HTTP3.

- Нажмите Сохранить.

Отключение TLS 1.3:

- Вернитесь в карточку сайта и нажмите Ручная настройка (или Конфигурационные файлы).

- Откройте вкладку Frontend.

- В секцию server { добавьте строки:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   
ssl_prefer_server_ciphers on;

- Нажмите Сохранить — панель применит настройки автоматически.

 

Вариант 2. Предложить пользователям Firefox

     Часть сбоев связана не только с версией TLS, но и с так называемым TLS-отпечатком — особенностями ClientHello, который формирует конкретный браузер.

Mozilla Firefox использует другой набор расширений и иной порядок шифров в клиентском приветствии. В ряде случаев этого достаточно, чтобы соединение прошло через проблемные промежуточные устройства без каких-либо изменений на сервере.

Поэтому, если сайт не открывается у части посетителей, им можно временно порекомендовать открыть его в Firefox. Это самый быстрый способ и проверить гипотезу, и обойти проблему на стороне конечного пользователя.

Если сайт выборочно не открывается по HTTPS у части пользователей, а сервер при этом работает и доступен из других сетей, проблема, скорее всего, в прохождении TLS-соединения через внешние сети, а не в вашей инфраструктуре.

 

После того как ситуация стабилизируется, верните современную безопасную конфигурацию с TLS 1.3.

сегодня, в 12:58
 Комментировать

Для ответа нужно зарегистрироваться или авторизоваться.