Skip to content
EN

SSL_ERROR_PROTOCOL_VERSION_ALERT: причины

Коротко:

SSL_ERROR_PROTOCOL_VERSION_ALERT — TLS alert 70 (protocol_version). Сервер не поддерживает запрошенную TLS версию. Обычно происходит когда browser пробует TLS 1.3, а server застрял на TLS 1.2 (OK) или 1.0/1.1 (fail — browsers заблокировали). Альтернатива: browser offer старую TLS, сервер требует новую.

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

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

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

  • Сервер застрял на TLS 1.0/1.1 (блокированы Chrome/Firefox с 2020)
  • OpenSSL < 1.0.2 — нет ALPN + TLS 1.2
  • Legacy nginx (1.13-) — только TLS 1.2, no 1.3
  • Downgrade attack prevention: TLS_FALLBACK_SCSV detected
  • Custom TLS config отключил запрошенную version

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

  1. Включите TLS 1.2 + 1.3 в nginx: ssl_protocols TLSv1.2 TLSv1.3;
  2. Обновите OpenSSL до 3.x
  3. Проверьте supported TLS: openssl s_client -connect example.com:443 -tls1_3
  4. Enterno SSL Checker покажет все supported TLS versions
  5. См. гайд установки SSL на nginx

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

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

Что такое SSL_ERROR_PROTOCOL_VERSION_ALERT и как его исправить?

Ошибка SSL_ERROR_PROTOCOL_VERSION_ALERT возникает, когда браузер не может установить безопасное соединение с сервером из-за несовместимости версий протоколов TLS. Это может произойти, если сервер использует устаревшие версии протокола, такие как TLS 1.0 или 1.1, которые больше не поддерживаются современными браузерами.

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

Проверка и обновление конфигурации сервера для поддержки TLS

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

Если старые версии TLS активны, вам нужно внести изменения в конфигурацию вашего сервера. Например, для Apache вы можете изменить файл конфигурации httpd.conf или ssl.conf:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Это отключит устаревшие протоколы и оставит только TLS 1.2 и 1.3. После внесения изменений не забудьте перезапустить сервер для применения новых настроек.

Для Nginx аналогичные изменения можно внести в файл конфигурации:

ssl_protocols TLSv1.2 TLSv1.3;

После обновления конфигурации рекомендуется снова протестировать сервер с помощью openssl.

Проверка совместимости шифров и тестирование соединения

После обновления конфигурации сервера для поддержки новых версий TLS важно также проверить совместимость шифров. Используйте команду openssl ciphers -v, чтобы увидеть список доступных шифров на вашем сервере.

Убедитесь, что у вас есть поддержка современных шифров, таких как AES и ChaCha20, которые обеспечивают высокий уровень безопасности. Если ваши шифры устарели, вам необходимо обновить их в конфигурации сервера.

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

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

TL;DR: Что такое SSL_ERROR_PROTOCOL_VERSION_ALERT?

Ошибка SSL_ERROR_PROTOCOL_VERSION_ALERT возникает, когда клиент и сервер не могут согласовать версию протокола TLS. Это часто связано с использованием устаревших версий TLS (например, TLS 1.0 или 1.1), которые не поддерживаются современными браузерами. Чтобы исправить эту ошибку, необходимо обновить конфигурацию сервера, чтобы он поддерживал как минимум TLS 1.2. Проверьте настройки вашего веб-сервера и установите актуальные версии шифров, используя команды, такие как openssl s_client -connect example.com:443 для диагностики.

Обновление конфигурации сервера для поддержки современных версий TLS

Чтобы устранить ошибку SSL_ERROR_PROTOCOL_VERSION_ALERT, важно убедиться, что ваш сервер настроен на использование актуальных версий протокола TLS. Большинство современных браузеров и клиентов требуют, чтобы сервер поддерживал не менее TLS 1.2. Для проверки и обновления конфигурации сервера выполните следующие шаги:

  1. Проверьте текущую версию TLS: Используйте команду openssl s_client -connect yourdomain.com:443. В выводе ищите строку Protocol, чтобы увидеть, какая версия TLS используется.
  2. Обновите конфигурацию веб-сервера: В зависимости от вашего веб-сервера (Apache, Nginx и т.д.) вам нужно будет внести изменения в конфигурационный файл. Например, для Apache добавьте следующие строки в файл httpd.conf или ssl.conf:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
  1. Перезапустите сервер: После внесения изменений в конфигурацию обязательно перезапустите сервер для применения новых настроек. Например, для Apache выполните команду sudo systemctl restart apache2.
  2. Проверьте конфигурацию: После перезапуска сервера снова используйте команду openssl s_client -connect yourdomain.com:443, чтобы убедиться, что сервер теперь поддерживает TLS 1.2 или выше.

Также стоит проверить наличие уязвимостей в конфигурации шифров. Используйте онлайн-сервисы, такие как SSL Labs, для анализа вашей конфигурации SSL/TLS. Это поможет выявить не только поддержку версий TLS, но и безопасность используемых шифров.

В случае использования Nginx, добавьте в ваш файл конфигурации следующие строки:

ssl_protocols TLSv1.2 TLSv1.3;

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

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

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

Источники

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

Chrome и Firefox одинаково блокируют?

Да, с 2020: TLS 1.0 + 1.1 отключены. Safari, Edge followed. TLS 1.2 минимум.

Как узнать какой TLS мой сервер?

<a href="/ssl">Enterno SSL</a> shows supported versions. Или <code>openssl s_client -connect host:443 -tls1_3</code>.

Сервер работал, вчера перестал — что?

Обычно browser auto-update. Chrome 84+ (июль 2020) enabled TLS 1.0/1.1 block by default.

Safe ли TLS 1.2 в 2026?

Да. TLS 1.3 лучше, но 1.2 secure при правильных ciphers. Обе — accepted стандарты.

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

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