Чем отличается доверенный корневой сертификат от промежуточного

В публичной инфраструктуре ключей (PKI) доверие к конечному (листовому) сертификату формируется через цепочку сертификатов. На вершине этой цепочки находится доверенный корневой сертификат, а между ним и листовым сертификатом могут находиться один или несколько промежуточных сертификатов. Понимание их ролей помогает правильно настроить TLS/HTTPS, избежать ошибок валидации и выбрать подходящий тип сертификата для своей инфраструктуры.

Что такое доверенный корневой сертификат

Доверенный корневой сертификат – это самоподписанный (self‑signed) сертификат, который находится в доверенном хранилище операционной системы, браузера или другого программного обеспечения. Он не подписан никакой другой стороной; его подлинность подтверждается тем, что он уже включён в список доверенных корней.

Корневые сертификаты издаются аккредитованными центрами сертификации (Certificate Authority, CA) и проходят строгий аудит перед включением в доверительные хранилища. Примеры: DigiCert Global Root G2, ISRG Root X1 (Let’s Encrypt), GlobalSign Root CA. После установки в ОС или браузер они становятся точкой доверия: любой сертификат, чья цепочка ведёт к одному из этих корней, считается доверенным, если все промежуточные подписи корректны и не отозваны.

Что такое промежуточный сертификат

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

Основная причина использования промежуточных сертификатов – разделение ответственности и повышение безопасности. Корневой ключ хранится в офлайне, а промежуточные ключи могут находиться на онлайн‑серверах, отвечая за выдачу сертификатов конечным пользователям. Если промежуточный ключ скомпрометирован, можно отозвать только его, не затрагивая корневой ключ.

Ключевые различия

Ниже перечислены основные аспекты, в которых корневой и промежуточный сертификаты различаются.

  • Самоподписанность: корневой сертификат всегда самоподписан; промежуточный подписан более высоким сертификатом (корневым или другим промежуточным).
  • Доверие по умолчанию: корневой сертификат уже включён в доверительные хранилища ОС и браузеров; промежуточный не доверен сам по себе и проверяется только как часть цепочки.
  • Хранение ключа: корневой закрытый ключ обычно хранится в офлайне (HSM, воздушно‑изолированные системы); промежуточный ключ может находиться на онлайн‑серверах CA для выдачи сертификатов.
  • Срок действия: корневые сертификаты часто выдаются на длительный период (10–20 лет и более); промежуточные имеют более короткий срок (обычно несколько лет), чтобы упростить их замену при необходимости.
  • Отзыв: отзыв корневого сертификата приводит к массовым проблемам доверия и требует обновления хранилищ всех клиентов; отзыв промежуточного затрагивает только те сертификаты, которые были им подписаны, и проще обрабатывается через CRL или OCSP.
  • Количество в цепочке: в минимальной цепочке присутствует один корневой и один листовой сертификат; промежуточных может быть ноль, один или несколько, в зависимости от структуры CA.

Как работает цепочка доверия

Когда браузер получает листовой сертификат (например, для сайта example.com), он выполняет следующие шаги:

  1. Проверяет подпись листового сертификата с использованием открытого ключа из следующего сертификата в цепочке.
  2. Если следующий сертификат – промежуточный, повторяет проверку его подписи с использованием открытого ключа из следующего сертификата.
  3. Процесс продолжается до тех пор, пока не достигнут сертификат, который находится в доверительном хранилище (корневой).
  4. Если цепочка завершилась доверенным корнем и все подписи верны, а ни один из сертификатов не отозван, браузер считает соединение доверенным.

Если в цепочке отсутствует хотя бы один промежуточный сертификат, который необходим для связывания листового с корневым, проверка прерывается с ошибкой «untrusted certificate» или «certificate chain incomplete». Поэтому при установке SSL на сервер важно предоставить полную цепочку: листовый сертификат + все необходимые промежуточные.

Практическое применение и настройка

Приобретая SSL‑сертификат у коммерческого CA или получая бесплатный от Let’s Encrypt, вы обычно получаете два файла:

  • листовой сертификат для вашего домена;
  • файл с промежуточными сертификатами (иногда называемый bundle или ca-bundle).

Для корректной работы HTTPS сервера (Nginx, Apache, IIS и т.д.) необходимо:

  1. Указать путь к листовому сертификату (ssl_certificate в Nginx, SSLCertificateFile в Apache).
  2. Указать путь к файлу с промежуточными сертификатами (ssl_trusted_certificate в Nginx, SSLCertificateChainFile в Apache).
  3. Убедиться, что доверенный корневой сертификат уже присутствует в хранилище ОС или браузера клиента (обычно так и есть для общедоступных CA).

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

Ограничения и нюансы

Несмотря на чёткое разделение ролей, на практике встречаются ситуации, которые стоит учитывать:

  • Некоторые тестовые или корпоративные PKI используют само‑подписанные промежуточные сертификаты, которые затем добавляются в доверенное хранилище клиентских устройств. В этом случае промежуточный фактически становится доверенным, но это исключение, а не правило для публичного интернета.
  • Корневые сертификаты могут обновляться или удаляться из хранилищ ОС (например, при уязвимости или изменении политики доверия). Администраторам следует периодически проверять актуальность списка доверенных корней.
  • Промежуточный сертификат может быть подписан не корневым, а другим промежуточным, образуя более длинную иерархию. Это не влияет на принцип проверки, но увеличивает количество шагов в цепочке.
  • При отзыве промежуточного сертификата все листовые сертификаты, им подписанные, становятся недоверенными до их повторного выпуска или замены цепочки.

Что проверять при проблемах с доверием

Если пользователи получают предупреждения о недоверенном сертификате, выполните следующие проверки:

  1. Убедитесь, что сервер передаёт полную цепочку (листовый + все промежуточные). Инструменты вроде openssl s_client -connect example.com:443 -showcerts или онлайн‑серверы SSL Labs покажут, какие сертификаты отправляются.
  2. Проверьте, что каждый сертификат в цепочке имеет корректные даты действия и не находится в списке отзыва (CRL/OCSP).
  3. Убедитесь, что корневой сертификат, которым завершается цепочка, присутствует в доверенном хранилище клиента (обновлённая ОС, браузер или корпоративное хранилище).
  4. Если используется собственный корпоративный CA, импортируйте его корневой сертификат в доверенные хранилища всех устройств, которые будут обращаться к внутренним ресурсам.

Вывод

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

PEFile.ru