SSL Handshake Timeout в Nginx - перестали открываться сайты
-
Если долго мучиться то что ни будь получится.
Заменил на большинства своих проектах так и на проектах коллег что перестали открываться с мобильных устройства и иногда даже и с ПК многие сайты.
Начал проверять и копаться, долго не мог понять в чем проблема, и тут решил проверить ssl в самом nginx (спройлер - проблема не в нем).
Копался значит по конфигам, читал статьи, писал хост-провайдерам, но никто не давал внятного ответа.
Также начал проверять панель разработчика в браузере и увидел вот что
Unsafe attempt to load URLиFailed to fetchот service worker - и тут то меня осенила что проблема точно в ssl/tls рукопожатии у сервера.Как я начал диагностику:
- Сперва проверил отвечает ли сервер вообщ:
curl -I https://site.ru/ dig yourdomain.ru +short- Пошел проверять версии TLS-протоколов:
openssl s_client -connect site.ru:443 -tls1_3 openssl s_client -connect site.ru:443 -tls1_2- Проверил ресурсы сервера - память и swap:
free -hКстати если swap активно используется при малом объеме озушки - задержки TLS handshake могут быть тоже из-за этого.
Главная причина
А главная причина то как раз и была в
overrideвoptions-ssl-nginx.confЭту херню в свое время настраивается cerbot (падла), а как известно сейчас с сертификациями больше проблемы в нашей стране.
В файле
options-ssl-nginx.confесть такая вот строка прописанная по умолчанию:ssl_protocols TLSv1.2 TLSv1.3;Хватит лирики, переходим к тому как все это дело исправить:
- Переходим в редактор файла
options-ssl-nginx.conf:
sudo nano /etc/letsencrypt/options-ssl-nginx.conf- Заменяем строку, а точнее удаляем
TLSv1.3:
ssl_protocols TLSv1.2 TLSv1.3;- Проверяем и перезапускаем nginx:
sudo nginx -t && sudo systemctl reload nginx- Проверяем результат:
openssl s_client -connect site.ru:443 -tls1_3У нас должна при проверке выскочить ошибка -
tlsv1 alert protocol versioчто как бы говорит что не предлагает клиенту больше TLS 1.3На скрине ниже сам файл
options-ssl-nginx.conf

Смотрите, вообще полное отключение TLS 1.3 - это я бы сказал диагностический шаг не более и не конечное решение!
Потому что мозила и прочие ssl конфигураторы рекомендуют держать как TLS 1.2 так и TLS 1.3 потому что 1.3 быстрее и безопаснее, а 1.2 обеспечивает работу со старыми клиентами.
Если после отключение TLS 1.3 проблема пропала - значит корень проблемы то был именно в конфликте протокола, а не в самом TLS 1.3. Вернуть его было бы правильно обратно, но когда уже найдется почему конкретно вызывается таймаут.
Но лично мое мнение - это все 3.14дорасы западные
вставляют нам палки в колеса, ничего будем бороться - хер вам на рыло соеденительные штаты омерики.Всем добра и позитива
!
Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2024 - 2026 ExLends, Inc. Все права защищены.