Skip to content
EN

ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY

Коротко:

ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY — Chrome отклонил HTTP/2 соединение потому, что TLS setup не соответствует RFC 7540 требованиям: минимум TLS 1.2, AEAD cipher (GCM, CCM, ChaCha20-Poly1305), ECDHE key exchange. Legacy ciphers (RC4, AES-CBC, 3DES) запрещены в HTTP/2. Исправление: nginx modern ssl_ciphers.

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

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

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

  • TLS 1.1 или ниже используется с HTTP/2
  • AES-CBC ciphers (не AEAD) — запрещены для HTTP/2
  • No ECDHE ciphers — только RSA key exchange
  • Blocked cipher list RFC 7540 (long list)
  • nginx старее 1.13 с legacy cipher defaults

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

  1. nginx modern: ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
  2. TLS 1.3 cipher suites автоматически HTTP/2-compliant
  3. ssl_prefer_server_ciphers on; + modern config
  4. Enterno SSL Checker покажет cipher list
  5. Или временно disable HTTP/2: listen 443 ssl; без http2

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

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

Что такое ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY?

Ошибка ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY возникает, когда сервер использует протокол HTTP/2 с недостаточной безопасностью TLS. Это может произойти, если сервер настроен на использование устаревших версий TLS (например, TLS 1.0 или 1.1) или слабых шифров, которые не соответствуют современным стандартам безопасности. Чтобы устранить эту ошибку, необходимо обновить настройки безопасности сервера и использовать только современные версии TLS (минимум TLS 1.2) с надежными шифрами.

Проблемы безопасности и их решение

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

  • Использование TLS 1.2 или выше.
  • Отключение устаревших шифров, таких как RC4, 3DES и другие.
  • Настройка сервера для поддержки современных шифров, таких как AES-GCM и ChaCha20.

Для проверки текущих настроек можно использовать команду openssl s_client -connect example.com:443 -tls1_2, которая поможет определить, поддерживает ли сервер TLS 1.2 и какие шифры доступны.

Пример настройки безопасного TLS на сервере

Рассмотрим пример настройки безопасного TLS на веб-сервере Apache. Для этого откройте файл конфигурации вашего сервера (обычно это /etc/httpd/conf.d/ssl.conf или /etc/apache2/sites-available/default-ssl.conf) и добавьте или измените следующие строки:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
SSLHonorCipherOrder on

Эти настройки отключают устаревшие версии TLS и задают порядок шифров, которые будут использоваться при соединении. После внесения изменений не забудьте перезапустить сервер с помощью команды sudo systemctl restart apache2 (или sudo systemctl restart httpd для CentOS). Проверьте, что ошибка ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY больше не возникает, используя инструменты для тестирования безопасности, такие как SSL Labs.

TL;DR: ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY

Код ошибки ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY указывает на то, что сервер использует протокол HTTP/2 с недостаточно безопасным TLS, что делает соединение уязвимым. Для решения данной проблемы необходимо настроить сервер на использование TLS версии 1.2 или выше, а также обеспечить поддержку современных шифров, таких как AES-GCM и ChaCha20.

Настройка безопасного TLS для HTTP/2

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

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20';
    ssl_prefer_server_ciphers on;

    # Дополнительные настройки безопасности
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options DENY;
    add_header X-XSS-Protection "1; mode=block";

    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

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

Важно отметить, что использование TLS версии 1.3 обеспечивает улучшенные характеристики производительности и безопасности по сравнению с предыдущими версиями. Убедитесь, что ваш сервер поддерживает эту версию протокола и соответствующие шифры.

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

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

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

Источники

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

HTTP/2 cipher requirements — почему строгие?

RFC 7540 prohibits vulnerable ciphers на protocol level. Даже если TLS принял cipher, HTTP/2 его rejects для defence-in-depth.

HTTP/3 имеет те же требования?

Похожие, через QUIC. TLS 1.3 only для QUIC.

Обратная совместимость?

HTTP/1.1 fallback работает для старых клиентов. Но для HTTP/2 — strict cipher requirements.

Mozilla SSL Config Generator?

Использовать для правильного config: ssl-config.mozilla.org. Выбирайте Modern или Intermediate.

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

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