Skip to content
EN

ERR_SSL_BAD_HANDSHAKE_HASH_VALUE

Коротко:

ERR_SSL_BAD_HANDSHAKE_HASH_VALUE — клиент обнаружил несоответствие hash в TLS handshake. Может быть MITM-атакой или порчей пакетов на пути. Чаще: legacy cipher suite с SHA-1 (deprecated с 2020), глючный proxy/firewall, VPN перекрывает TLS frames. Исправление: modern ciphers + TLS 1.2/1.3 + исключить proxy.

Ниже: причины, исправление, FAQ.

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

Причины ошибки

  • Legacy cipher с SHA-1 signature (Chrome rejects)
  • Proxy/firewall corrupt TLS frames
  • VPN (OpenVPN/WireGuard) MTU issue → fragmentation corrupts hash
  • MITM proxy с TLS-inspection broke handshake
  • Antivirus с HTTPS-scanning modify данные

Пошаговое исправление

  1. nginx: ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
  2. Отключите antivirus TLS-inspection temporarily
  3. Test из другой сети (mobile hotspot) — ISP proxy?
  4. VPN — проверьте MTU: ping -M do -s 1400
  5. Enterno SSL для cipher audit

Проверить SSL-сертификат →

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

TL;DR: Как исправить ERR_SSL_BAD_HANDSHAKE_HASH_VALUE

Ошибка ERR_SSL_BAD_HANDSHAKE_HASH_VALUE возникает, когда клиент и сервер не могут согласовать параметры шифрования при установлении защищенного соединения. Чтобы исправить эту ошибку, проверьте конфигурацию SSL/TLS на вашем сервере, убедитесь, что используемые алгоритмы хеширования совместимы с клиентами, и обновите сертификаты при необходимости. Используйте команду openssl s_client -connect yourdomain.com:443 для диагностики.

Причины возникновения ERR_SSL_BAD_HANDSHAKE_HASH_VALUE

Ошибка ERR_SSL_BAD_HANDSHAKE_HASH_VALUE может возникнуть по нескольким причинам. Основные из них:

  • Несоответствие версий протоколов: Сервер может поддерживать устаревшие версии протоколов SSL/TLS, которые не совместимы с современными клиентами.
  • Неподдерживаемые алгоритмы хеширования: Если сервер использует алгоритмы хеширования, которые не поддерживаются клиентом, это может привести к сбою рукопожатия.
  • Ошибки в конфигурации сервера: Неправильные настройки на уровне веб-сервера (например, Apache или Nginx) могут вызвать проблемы с установлением соединения.

Для диагностики проблемы используйте команды, такие как openssl s_client -connect yourdomain.com:443, чтобы увидеть, какие алгоритмы шифрования поддерживает сервер.

Как исправить ошибку: практическое руководство

Для устранения ошибки ERR_SSL_BAD_HANDSHAKE_HASH_VALUE выполните следующие шаги:

  1. Проверьте конфигурацию SSL/TLS: Убедитесь, что ваш сервер поддерживает актуальные версии протоколов. Например, для Nginx добавьте следующие строки в конфигурацию:
ssl_protocols TLSv1.2 TLSv1.3;
  1. Обновите алгоритмы хеширования: Убедитесь, что используемые алгоритмы соответствуют современным стандартам. Например, используйте sha256 или sha384.
  2. Проверьте сертификаты: Убедитесь, что сертификаты обновлены и корректны. Используйте команду openssl x509 -in your_certificate.crt -text -noout для проверки сертификата.
  3. Тестируйте соединение: После внесения изменений протестируйте соединение с помощью команды openssl s_client -connect yourdomain.com:443 и убедитесь, что ошибки больше не возникает.

Следуя этим шагам, вы сможете устранить проблему с ERR_SSL_BAD_HANDSHAKE_HASH_VALUE и обеспечить безопасное соединение для пользователей вашего сайта.

TL;DR: Как исправить ERR_SSL_BAD_HANDSHAKE_HASH_VALUE

Ошибка ERR_SSL_BAD_HANDSHAKE_HASH_VALUE возникает, когда сервер и клиент не могут установить безопасное соединение из-за несоответствия в алгоритмах хэширования. Чтобы исправить эту ошибку, необходимо убедиться, что на сервере используются актуальные версии SSL/TLS и поддерживаемые алгоритмы хэширования, такие как SHA-256. Также может потребоваться обновление конфигурации веб-сервера и сертификатов.

Устранение ошибок SSL: настройка веб-сервера

Для устранения ошибки ERR_SSL_BAD_HANDSHAKE_HASH_VALUE важно проверить настройки вашего веб-сервера. Ниже приведены шаги, которые помогут вам правильно настроить сервер и избежать данной ошибки.

1. Проверка версии TLS

Убедитесь, что ваш сервер поддерживает актуальные версии протокола TLS. Рекомендуется использовать минимум TLS 1.2. Для проверки версии TLS выполните следующую команду:

openssl s_client -connect yourdomain.com:443 -tls1_2

Если вы получаете ответ, значит, версия TLS 1.2 поддерживается. Если нет, необходимо обновить конфигурацию сервера.

2. Настройка алгоритмов хэширования

Проверьте, какие алгоритмы хэширования поддерживаются вашим сервером. Для этого используйте следующую команду:

openssl ciphers -v

Вы должны убедиться, что в списке присутствуют алгоритмы, такие как SHA-256 и SHA-384. Если ваши алгоритмы устарели, обновите конфигурацию вашего сервера.

3. Обновление конфигурации веб-сервера

В зависимости от используемого веб-сервера, вам нужно будет внести изменения в конфигурацию. Например, для Nginx добавьте следующие строки в конфигурационный файл:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256';

Для Apache используйте следующие директивы:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5;

Не забудьте перезапустить сервер после внесения изменений.

4. Проверка сертификатов SSL

Убедитесь, что сертификаты SSL установлены и действительны. Используйте следующую команду для проверки сертификатов:

openssl x509 -in /path/to/your/certificate.crt -text -noout

Проверьте, что сертификат не просрочен и выдан надежным центром сертификации.

5. Тестирование после изменений

После внесения всех изменений протестируйте ваше соединение с помощью онлайн-сервисов, таких как SSL Labs, чтобы убедиться, что ваш сайт корректно поддерживает безопасные соединения и не выдает ошибок.

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

СертификатСрок, издатель, домены (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)

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

Источники

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

MITM реально?

Возможно. Если error появляется только из определённой сети — проверьте proxy/firewall там.

Как safely test?

Из mobile hotspot или VPN-exit в другой стране. Если там работает — проблема в local network.

SHA-1 всё ещё доступен?

Для cert signatures — нет (Chrome blocks с 2017). Для HMAC в handshake — legacy accepted, но not preferred.

Permanent fix?

Modern TLS config (1.2+1.3, GCM ciphers). Большинство browsers работают.

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

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