Цепочка доверия TLS-сертификата — это основа безопасного соединения в интернете. Она представляет собой иерархическую связь между цифровыми сертификатами, которая позволяет браузеру или другому клиенту убедиться в подлинности удаленного сервера. Если эта цепочка нарушена, безопасность соединения ставится под сомнение.
Что скрывается за звеньями цепочки
Цепочка состоит из трех основных звеньев: корневой сертификат, промежуточный сертификат и конечный сертификат сервера. Корневой сертификат — это абсолютно доверенный «якорь», установленный в корневых хранилищах операционной системы или браузера. Центр сертификации (CA) использует свой закрытый ключ для подписи промежуточных сертификатов. Промежуточный сертификат, в свою очередь, подписывает конечный сертификат, который используется на веб-сервере.
Проверка подлинности происходит по цепочке снизу вверх. Браузер берет сертификат сервера и проверяет его цифровую подпись с помощью открытого ключа из промежуточного сертификата. Затем проверяется подпись самого промежуточного сертификата с помощью открытого ключа корневого сертификата. Если корневой сертификат доверенный, вся цепь считается валидной. Этот механизм — ядро инфраструктуры открытых ключей (PKI).
Инструменты для самостоятельной проверки
Для ручной проверки цепочки доверия существуют специальные утилиты. Наиболее мощная и распространенная, openssl в командной строке. С ее помощью можно детально исследовать все звенья, проверить алгоритм подписи, срок действия и другие параметры.
Простую проверку можно выполнить в браузере. Достаточно кликнуть по значку замка в адресной строке рядом с HTTPS и открыть детали сертификата. Там обычно отображается полная цепочка: от серверного сертификата до корневого. В этом же разделе часто показывается хеш-отпечаток (отпечаток) сертификата — уникальный криптографический идентификатор.
Пошаговая верификация с помощью OpenSSL
- Получить сертификат с сервера:
openssl s_client -connect example.com:443 -showcerts. Команда выведет всю представленную цепочку. - Сохранить каждый сертификат из вывода в отдельный файл (например, server.crt, intermediate.crt).
- Проверить подпись серверного сертификата промежуточным:
openssl verify -CAfile intermediate.crt server.crt. - Убедиться, что промежуточный сертификат подписан доверенным корневым сертификатом из вашего хранилища.
Важно также проверять статус отзыва сертификата. Центры сертификации могут отзывать скомпрометированные или более недействительные сертификаты через списки отзыва (CRL) или по протоколу OCSP (Online Certificate Status Protocol). Современные браузеры выполняют эту проверку автоматически во время SSL-рукопожатия.

Распространенные проблемы и их идентификация
- Неполная цепочка: Сервер не предоставляет промежуточные сертификаты. Браузеру не хватает звена для построения пути к доверенному корню.
- Самоподписанный сертификат: Такой сертификат не подписан доверенным CA и прерывает цепочку доверия. Браузеры показывают серьезные предупреждения.
- Просроченный срок действия: У каждого сертификата есть ограниченный срок валидности. Просроченный сертификат делает всю цепочку недействительной.
- Несоответствие имени: Имя в сертификате не совпадает с доменным именем сервера, к которому выполняется подключение.
Проверка списков отзыва (CRL) или запрос по протоколу OCSP могут выявить, что сертификат был отозван центром сертификации до истечения своего срока действия. Это критически важная часть проверки на аутентичность.
Обеспечение целостности TLS-сессии
Успешная проверка цепочки доверия, лишь первый этап. Она гарантирует, что открытый ключ в сертификате действительно принадлежит заявленному владельцу. Далее в рамках TLS-сессии этот ключ используется для установления безопасного симметричного шифрования. Нарушение на любом этапе — в криптографии, проверке подписи или верификации статуса — ставит под угрозу конфиденциальность и целостность данных.
Системным администраторам и разработчикам необходимо регулярно проверять цепочки доверия для своих собственных серверов. Это предотвращает сбои, когда промежуточные сертификаты устаревают или отзываются. Мониторинг состояния сертификатов и их цепочек должен быть частью рутинной практики обеспечения безопасности.
Ответы на ключевые вопросы
Что делать, если браузер не доверяет корневому сертификату?
Корневой сертификат может отсутствовать в доверенном хранилище клиента. Такое случается с сертификатами внутренних, частных центров сертификации (CA). Для их использования корневой сертификат такого CA нужно вручную добавить в хранилище доверия.
Как часто нужно проверять цепочку?
При первоначальной настройке сервера и при любом обновлении его SSL/TLS сертификата. Также рекомендуется периодическая проверка, так как центры сертификации могут обновить свои промежуточные сертификаты.
Чем CRL отличается от OCSP?
CRL (Certificate Revocation List) — это периодически обновляемый список всех отозванных сертификатов конкретного CA. OCSP, это онлайн-протокол для мгновенного запроса статуса одного конкретного сертификата. OCSP считается более оперативным методом.