Открыть сервисСервис

Ошибка TLS: причины и устранение

Ошибка TLS — обобщённое обозначение сбоев, возникающих при установке защищённого соединения по протоколу TLS (Transport Layer Security) между клиентом и сервером. TLS — криптографический протокол, обеспечивающий конфиденциальность, целостность и аутентификацию данных в сетевых протоколах, прежде всего в HTTPS. Ошибки TLS проявляются в отказе браузера или приложения открыть сайт, в обрыве защищённого соединения, в сообщениях вида «Соединение не защищено», «NET::ERR_CERT_», «SSL_ERROR_» или «502 Bad Gateway» при работе прокси. По статистике служб технической поддержки хостинг-провайдеров, ошибки сертификатов и рукопожатий TLS составляют заметную долю обращений, связанных с недоступностью сайтов.

Природа протокола TLS

TLS разработан как замена устаревшего протокола SSL. Текущая основная версия — TLS 1.3 (RFC 8446, 2018), предыдущая — TLS 1.2 (RFC 5246, 2008). Протокол работает поверх транспортного уровня TCP и используется в HTTPS, SMTPS, IMAPS, FTPS и других защищённых протоколах.

Рукопожатие TLS включает согласование версии протокола, набора шифров (cipher suites), обмен ключами и аутентификацию сервера (а при взаимной аутентификации — и клиента) с помощью цифровых сертификатов X.509, выдаваемых удостоверяющими центрами (CA). Любое нарушение этого процесса — несовместимость версий, отсутствующий сертификат, несоответствие имени хоста, истёкший срок действия — приводит к ошибке TLS.

Основные причины ошибок

Проблемы с сертификатом

Наиболее частая категория ошибок. К ним относятся:

  • Истёкший сертификат — срок действия истёк, и клиент отказывается доверять соединению. Классическая причина забытого продления.
  • Несоответствие имени хоста (hostname mismatch) — сертификат выдан на другое доменное имя или не покрывает поддомен.
  • Недоверенный корневой центр сертификации — клиент не имеет в хранилище корневого сертификата CA, выдавшего сертификат сервера (часто у самоподписанных сертификатов).
  • Неполная цепочка сертификации (incomplete chain) — сервер не отправил промежуточные сертификаты, и клиент не может построить путь доверия до корневого CA.
  • Отзыв сертификата — сертификат помечен как отозванный по спискам CRL или OCSP.

Проблемы рукопожатия и шифрования

  • Несовместимость версий протокола — клиент поддерживает только TLS 1.3, а сервер настроен на SSLv3 или TLS 1.0, либо наоборот.
  • Несовместимость наборов шифров — ни один cipher suite не подходит обеим сторонам.
  • Сломанная цепочка доверия — промежуточный сертификат отсутствует или повреждён.
  • Проблемы с SNI (Server Name Indication) — сервер не получил или игнорирует имя запрашиваемого хоста и отдаёт сертификат другого сайта.

Сетевые и конфигурационные причины

  • Прокси и корпоративные шлюзы, выполняющие TLS-инспекцию (MITM-прокси), подменяют сертификат, и клиент не доверяет прокси-сертификату.
  • Неправильное системное время — сертификат «ещё не вступил в силу» или «уже истёк» относительно локальных часов.
  • Проблемы DNS — запрос ушёл не на тот сервер, и тот отдаёт чужой сертификат.
  • Файрвол или DPI, режущие или подменяющие трафик.

Коды ошибок

Код / сообщениеТипичная причина
ERR_CERT_DATE_INVALIDИстёкший сертификат или неверное системное время
ERR_CERT_COMMON_NAME_INVALIDНесоответствие имени хоста
ERR_CERT_AUTHORITY_INVALIDНедоверенный или самоподписанный CA
ERR_SSL_PROTOCOL_ERRORНесовместимость версий/шифров, повреждённый handshake
SSL_ERROR_BAD_CERT_DOMAIN (Firefox)Несоответствие имени хоста
SEC_ERROR_UNKNOWN_ISSUER (Firefox)Неизвестный корневой CA
502 Bad Gateway / 526 Invalid SSL CertificateСервер-прокси не смог установить TLS с бэкендом

Устранение ошибок

Для владельцев сайтов:

  1. Проверить срок действия сертификата и вовремя продлевать его (сертификаты Let's Encrypt выдаются на 90 дней).
  2. Настроить полную цепочку сертификатов — в конфигурацию веб-сервера (nginx, Apache) должны входить и промежуточные сертификаты.
  3. Убедиться, что сертификат покрывает все нужные имена (SAN) и поддомены.
  4. Проверить корректность системного времени на сервере.
  5. Проверить настройки SNI и соответствие сертификата домену.

Для пользователей:

  1. Проверить системные дату и время.
  2. Обновить корневые сертификаты ОС и браузера.
  3. Отключить расширения и прокси, которые могут подменять сертификаты.
  4. При работе через корпоративную сеть обратиться к администратору — часто причиной является TLS-инспекция на шлюзе.
  5. Не отключать предупреждения о сертификатах без понимания причины — это скрывает реальные угрозы.

Значение

Ошибки TLS являются индикатором либо устаревшей инфраструктуры (просроченные сертификаты, старые протоколы), либо проблем конфигурации, либо активной атаки (подмена сертификата). Практически все современные браузеры блокируют соединения с ошибками сертификатов по умолчанию, что делает корректную настройку TLS обязательным условием нормальной работы сайта.

Источники:

  • RFC 8446 — The Transport Layer Security (TLS) Protocol Version 1.3
  • RFC 5246 — The Transport Layer Security (TLS) Protocol Version 1.2
  • Mozilla SSL Configuration Generator — рекомендации по настройке TLS
  • Документация Let's Encrypt — управление сертификатами
  • Справочник MDN Web Docs — ошибки TLS/SSL в браузерах
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru