Skip to content
EN

SSL Handshake Failed: сбой установления TLS-соединения

Коротко:

SSL Handshake Failed — TLS-рукопожатие между клиентом и сервером не завершилось. Причины: устаревший SNI, несовпадение TLS-версий, client certificate required, time-skew > 24 часа, или DDoS-protection блокирует handshake. Диагностика: openssl s_client -connect host:443 -servername host -debug.

Эта ошибка часто встречается в дебаггинге SSL. Разбираем причины и даём пошаговое решение.

Проверить SSL своего сайта →

Что означает SSL Handshake Failed

SSL Handshake Failed — TLS-рукопожатие между клиентом и сервером не завершилось. Причины: устаревший SNI, несовпадение TLS-версий, client certificate required, time-skew > 24 часа, или DDoS-protection блокирует handshake. Диагностика: openssl s_client -connect host:443 -servername host -debug.

Ошибка может появиться в Chrome, Edge, Opera, Brave (все на Chromium) и частично в Firefox и Safari. Разные браузеры отображают один и тот же код по-разному — но суть одна.

Как исправить (пошагово)

  1. Проверьте SSL-сертификат онлайнчекер Enterno.io покажет грейд, срок действия, цепочку и конкретную причину.
  2. Если проблема на стороне сервера — перевыпустите сертификат через certbot или выбранного CA.
  3. Обновите nginx/apache конфигурацию (настройте TLS 1.2/1.3, fullchain, правильные ciphers).
  4. Проверьте kernel OpenSSL — устаревший openssl < 1.1 может ломать handshake.
  5. После деплоя: проверьте ещё раз через SSL-чекер + очистите browser SSL-cache.

Проверить SSL сейчас →

Смежные SSL-ошибки

Что такое SSL Handshake Failed?

Ошибка SSL Handshake Failed возникает, когда клиент (например, браузер) и сервер не могут согласовать параметры безопасного соединения. Это может быть вызвано несколькими причинами, включая неправильные настройки сертификатов, несовместимость протоколов или проблемы с сетью. Чтобы исправить эту ошибку, необходимо проверить конфигурацию SSL и убедиться, что все компоненты корректно настроены.

Причины возникновения ошибки SSL Handshake Failed

Существует несколько основных причин, по которым может возникнуть ошибка SSL Handshake Failed:

  • Неправильные сертификаты: Убедитесь, что SSL-сертификат, установленный на сервере, действителен и правильно настроен. Для проверки можно использовать команду openssl s_client -connect yourdomain.com:443, которая покажет детали сертификата.
  • Несоответствие протоколов: Если сервер использует устаревшие версии протоколов, такие как SSLv3, а клиент требует TLS 1.2 или выше, это может привести к ошибке. Проверьте настройки протоколов на сервере.
  • Брандмауэры и прокси: Иногда брандмауэры или прокси-серверы могут блокировать соединение или некорректно обрабатывать SSL-трафик. Проверьте настройки вашего брандмауэра.
  • Проблемы с сетью: Нестабильное интернет-соединение может вызвать сбои в процессе рукопожатия SSL. Убедитесь, что ваше соединение стабильно.

Как исправить ошибку SSL Handshake Failed

Для исправления ошибки SSL Handshake Failed можно выполнить следующие шаги:

  1. Проверка сертификата: Убедитесь, что ваш сертификат действителен, не истек и правильно установлен. Используйте команду openssl x509 -in /path/to/cert.pem -text -noout для проверки его деталей.
  2. Обновление конфигурации сервера: Если вы используете веб-сервер Apache, проверьте файл конфигурации httpd.conf или ssl.conf на наличие правильных параметров. Убедитесь, что включены необходимые протоколы, например:
  3. SSLProtocol all -SSLv2 -SSLv3
  4. Проверка совместимости: Убедитесь, что клиент и сервер поддерживают совместимые версии протоколов. Если ваша система использует устаревшие версии, обновите её до более современных.
  5. Тестирование соединения: Используйте инструменты для тестирования SSL-соединений, такие как SSL Labs, чтобы получить детальный отчет о проблемах с сертификатом и конфигурацией.
  6. Логи сервера: Проверьте логи вашего веб-сервера на наличие ошибок, связанных с SSL. Это может помочь выявить конкретные проблемы.
СертификатСрок, издатель, домены (SAN)
ЦепочкаПроверка промежуточных и корневых CA
TLS-протоколВерсия TLS и набор шифров
УязвимостиHeartbleed, POODLE, слабые шифры

Почему нам доверяют

TLS 1.3
поддержка
Полная
цепочка CA
<2с
результат
30/14/7
дней до истечения

Как это работает

1

Введите домен

2

Проверка цепочки TLS

3

Дата истечения и уязвимости

Что проверяет SSL-тест?

SSL/TLS — протокол шифрования, который защищает данные между браузером и сервером. Наш инструмент анализирует сертификат, цепочку доверия, версию TLS и известныеуязвимости.

Детали сертификата

Издатель, срок действия, алгоритм подписи, покрываемые домены (SAN) и тип валидации (DV/OV/EV).

Цепочка доверия

Проверка полной цепочки: от конечного сертификата через промежуточные до корневого CA.

Анализ TLS

Версия протокола (TLS 1.2/1.3), набор шифров, поддержка Perfect Forward Secrecy (PFS).

Оповещения об истечении

Создайте монитор — получайте уведомления в Telegram и email за 30/14/7 дней до истечения.

DV vs OV vs EV сертификаты

DV (Domain Validation)
  • Подтверждение только владения доменом
  • Выдаётся за минуты автоматически
  • Бесплатно через Let's Encrypt
  • Подходит для большинства сайтов
  • Самый распространённый тип
OV / EV
  • Проверка организации (OV) или расширенная проверка (EV)
  • Выдаётся за 1-5 рабочих дней
  • Стоимость от $50 до $500/год
  • Для финансов, e-commerce, госсайтов
  • Повышает доверие пользователей

Кому это нужно

DevOps

мониторинг SSL-сертификатов

Безопасность

аудит TLS-конфигурации

SEO

HTTPS как фактор ранжирования

E-commerce

доверие покупателей

Частые ошибки

Истёкший сертификатБраузеры блокируют сайт с истёкшим SSL. Настройте автопродление или мониторинг.
Неполная цепочка сертификатовБез промежуточного CA некоторые браузеры и боты не смогут верифицировать сертификат.
Mixed content на HTTPS-сайтеHTTP-ресурсы на HTTPS-странице — замок в браузере пропадает, снижается доверие.
Использование TLS 1.0/1.1Устаревшие версии TLS содержат известные уязвимости. Используйте TLS 1.2+ или 1.3.
Несовпадение домена в сертификатеСертификат должен покрывать все домены сайта, включая www и поддомены.

Лучшие практики

Настройте автопродлениеLet's Encrypt + certbot с cron — сертификат обновляется автоматически каждые 60-90 дней.
Включите HSTSЗаголовок Strict-Transport-Security заставляет браузер всегда использовать HTTPS.
Используйте TLS 1.3TLS 1.3 быстрее (1-RTT handshake) и безопаснее — убраны устаревшие шифры.
Мониторьте срок действияСоздайте монитор на Enterno.io — получайте уведомления задолго до истечения.
Проверяйте цепочку после обновленияПосле обновления сертификата убедитесь, что промежуточные сертификаты установлены.

Получите больше с бесплатным аккаунтом

Мониторинг SSL-сертификатов, история проверок и уведомления за 30 дней до истечения.

Зарегистрироваться (FREE)

Больше по теме

Источники

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

Безопасно ли игнорировать SSL Handshake Failed?

Нет. Эта ошибка означает реальную проблему с SSL-сертификатом. Игнорирование (через chrome://flags или "thisisunsafe") делает соединение уязвимым к man-in-the-middle. Исправляйте на стороне сервера.

Как проверить наличие этой ошибки заранее?

Используйте <a href="/ssl">SSL/TLS-чекер Enterno.io</a> или <a href="/monitors">настройте мониторинг</a> с алертом за 14 дней до истечения сертификата. Получите email/Telegram-уведомление до того, как пользователи увидят ошибку.

Помогает ли очистка cookies / cache?

Иногда — для промежуточных кэшированных ошибок SSL. Шаги: chrome://net-internals/#sockets → Flush sockets, chrome://net-internals/#hsts → Delete domain security policies (осторожно, только для debug). Но если проблема на сервере — очистка cache не поможет.

Let's Encrypt бесплатный — и сертификат валидный?

Да, Let's Encrypt сертификаты во всех современных trust stores (Chrome, Firefox, Safari, Edge). 90-дневный срок действия с автопродлением через certbot. Нет причин использовать платный CA для стандартного сайта.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.