Что такое цепочка сертификатов SSL? Как это работает

К Benish Parvaiz·

Цепочка сертификатов SSL помогает браузерам и другим клиентам проверять, можно ли доверять цифровому сертификату веб-сайта. Когда вы посещаете веб-сайт через HTTPS, ваш браузер проверяет свой сертификат TLS, чтобы подтвердить, что он идентифицирует запрошенный домен и может быть проверен через доверенный центр сертификации (CA). Эта проверка часто зависит от цепочки сертификатов, соединяющей сертификат веб-сайта с доверенным корневым сертификатом. Если промежуточный сертификат отсутствует или цепочку невозможно проверить, пользователи могут столкнуться с предупреждениями безопасности или ошибками подключения. Понимание того, как работает цепочка сертификатов SSL, помогает владельцам веб-сайтов, системным администраторам и специалистам по безопасности устранять проблемы с сертификатами и поддерживать надежные соединения HTTPS.

Что такое цепочка сертификатов SSL?

What Is an SSL Certificate Chain?

Цепочка сертификатов SSL, также называемая цепочкой доверия сертификатов, представляет собой последовательность цифровых сертификатов, которая устанавливает путь от сертификата веб-сайта к доверенному корневому центру сертификации. Хотя SSL остается распространенным термином, современные соединения HTTPS используют Transport Layer Security (TLS).

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

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

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

Как работает цепочка доверия сертификатов SSL?

What Is an SSL Certificate Chain?

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

Шаг 1. Веб-сайт представляет свой сертификат

Когда браузер подключается к веб-сайту через HTTPS, сервер представляет свой листовой сертификат во время установления связи TLS. Этот сертификат содержит открытый ключ веб-сайта, информацию о домене, сведения об эмитенте, срок действия и цифровую подпись.

Браузер проверяет, соответствует ли запрошенное имя хоста записям альтернативного имени субъекта (SAN) сертификата и удовлетворяет ли сертификат применимым требованиям проверки.

Шаг 2. Промежуточный сертификат устанавливает следующую ссылку

Сертификат веб-сайта обычно выдается промежуточным центром сертификации, а не непосредственно корневым центром сертификации. Клиент использует открытый ключ промежуточного сертификата для проверки подписи конечного сертификата.

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

Шаг 3: Цепочка достигает доверенного корня

Корневой сертификат принадлежит корневому центру сертификации и обычно является самоподписанным. Браузеры и операционные системы поддерживают доверенные корневые сертификаты в соответствии со своими собственными политиками доверия.

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

Шаг 4: Клиент проверяет цепочку

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

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

Корневой сертификат, промежуточный сертификат и листовой сертификат

What Is an SSL Certificate Chain?

Каждый сертификат в цепочке имеет определенную цель. Понимание этих различий помогает администраторам правильно настроить HTTPS и устранять ошибки сертификатов.

1. Сертификат листа

Листовой сертификат, также называемый сертификатом конечного объекта, идентифицирует веб-сайт или сервер. Он содержит открытый ключ, информацию о домене, эмитенте, сроке действия и цифровую подпись.

Сервер представляет этот сертификат клиенту во время установления связи TLS. Клиент проверяет его подлинность и достоверность, прежде чем принять его для соединения.

2. Промежуточный сертификат

Промежуточный сертификат принадлежит подчиненному центру сертификации, который выдает сертификаты или делегирует выдачу другому органу сертификации. Он соединяет сертификат веб-сайта с доверенным корневым сертификатом.

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

3. Корневой сертификат

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

Клиент должен распознать корень как доверенный в соответствии с настроенной политикой доверия.

Особенность

Листовой сертификат

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

Корневой сертификат

Основная цель

Идентифицирует веб-сайт

Выдача сертификатов делегатам

Действует как якорь доверия

Выдано

Обычно промежуточный CA

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

Обычно самоподписанный

Содержит открытый ключ

Да

Да

Да

Отправлено сервером

Да

Обычно, когда требуется

Обычно не требуется

Роль в проверке

Устанавливает сертифицированную идентификацию сервера

Соединяет лист с якорем доверия

Устанавливает доверие клиентов

Таким образом, типичная цепочка следует по этому пути:

Сертификат веб-сайта → Промежуточный сертификат CA → Доверенный корневой сертификат

Точная цепочка зависит от центра сертификации, конфигурации сервера и сертификатов, доступных клиенту.

Как браузеры проверяют цепочку сертификатов SSL

Браузеры проверяют цепочки сертификатов во время установления связи TLS, чтобы определить, можно ли доверять удостоверению сервера.

Проверка имени хоста

Браузер проверяет, соответствует ли запрошенный домен записям SAN сертификата. Сертификат, выданный например.comможет не охватыватьshop.example.comесли не включено дополнительное имя хоста или соответствующий подстановочный знак.

Несоответствие имени хоста может вызвать предупреждение браузера или привести к отклонению соединения.

Проверка цифровой подписи

Цифровые подписи помогают клиентам проверять целостность и подлинность сертификата в рамках пути сертификации. Клиент использует открытый ключ выдающего сертификата для проверки подписи проверяемого сертификата.

Криптографические операции занимают центральное место в этом процессе. Более подробное объяснение можно найти в руководстве CyberLad похеширование в кибербезопасности.

Срок действия сертификата

Срок действия сертификатов определяется ихНе раньшеиНе послеполя. Клиент проверяет, действительны ли соответствующие сертификаты на момент проверки.

Листовой или промежуточный сертификат с истекшим сроком действия может помешать успешной проверке. Администраторам следует следить за сроками действия сертификатов и проверять правильность установки обновленных сертификатов.

Хранилище доверенных сертификатов и путь к сертификатам

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

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

Отзыв сертификата

Сертификаты могут быть отозваны до истечения срока их действия, если их закрытые ключи скомпрометированы или другие условия требуют отзыва. Центры сертификации могут публиковать информацию об отзыве через списки отзыва сертификатов (CRL) или онлайн-протокол статуса сертификатов (OCSP).

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

Распространенные ошибки цепочки сертификатов SSL и их причины

What Is an SSL Certificate Chain?

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

1. Неполная цепочка сертификатов

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

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

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

2. Недоверенный центр сертификации

Клиент может отклонить цепочку, если он не может подключить сертификат к приемлемому якорю доверия. Это может произойти с самозаверяющими сертификатами или частными сертификатами ЦС, которые не были установлены в хранилище доверенных сертификатов клиента.

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

3. Сертификат с истекшим сроком действия

Листовой или промежуточный сертификат с истекшим сроком действия может помешать успешной проверке.

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

4. Несоответствие имени хоста

Несоответствие имени хоста возникает, когда запрошенный домен не попадает в записи SAN сертификата.

Как это исправить:Установите сертификат, охватывающий запрошенное имя хоста. Просмотрите настройки виртуального хоста, указание имени сервера (SNI) и привязки сертификатов балансировщика нагрузки.

5. Неверный пакет сертификатов

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

Как это исправить:Сравните эмитента листового сертификата с настроенными промежуточными сертификатами. Исправьте пакет и протестируйте конфигурацию сервера перед перезагрузкой сервиса.

6. Отзыв или другая ошибка проверки

Сертификат может не пройти проверку, поскольку он был отозван или не соответствует другим применимым требованиям сертификата.

Как это исправить:Проверьте статус сертификата и ознакомьтесь с инструкциями выдавшего его центра сертификации. Замените отозванный сертификат и выясните причину. Отключение проверки сертификата не является безопасным решением.

Как проверить цепочку сертификатов SSL

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

Способ 1: используйте SSL Labs

Тест SSL-сервера Qualys SSL Labs анализирует общедоступные серверы TLS и сообщает о проблемах с сертификатами и конфигурацией.

  1. Откройте страницу тестирования SSL Labs.

  2. Введите домен, который хотите проверить.

  3. Запустите тест и дождитесь анализа.

  4. Просмотрите сведения о сертификате и информацию о цепочке.

  5. Изучите предупреждения о доверии, истечении срока действия, отсутствующих промежуточных звеньях или проверке имени хоста.

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

Способ 2. Проверка сертификатов с помощью OpenSSL

OpenSSL может отображать сертификаты, представленные сервером во время соединения TLS. Запустить:

openssl s_client -connect example.com:443 \
  -имя_сервера example.com \
  -сертификаты

Заменитьпример.comс целевым доменом.

The -соединитьОпция указывает пункт назначения и порт.-имя_сервераопция отправляет имя хоста через SNI, а-сертификатыотображает сертификаты, отправленные сервером.

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

Способ 3. Проверьте цепочку и имя хоста

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

openssl s_client \
  -connect example.com:443\
  -имя_сервера example.com \
  -verify_return_error \
  -verify_hostname example.com

Ищите успешный результат проверки, напримерПроверьте код возврата: 0 (ок). Точный результат зависит от версии OpenSSL, хранилища доверенных сертификатов и настроек проверки.

The -verify_return_errorопция приводит к возврату ошибок проверки вместо того, чтобы позволить команде продолжить работу после них. См.официальная документация OpenSSL s_client.

Метод 4: проверка эмитента и сведений о сроке действия

Если вы сохранили листовой сертификат как файл PEM, запустите:

openssl x509 -in certificate.pem -noout \
  -тема -эмитент -даты

Здесь отображаются субъект, эмитент и даты действия сертификата. Используйте выходные данные, чтобы проверить, соответствует ли эмитент ожидаемому центру сертификации и находится ли сертификат в пределах срока действия.

Как исправить неполную цепочку сертификатов SSL

What Is an SSL Certificate Chain?

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

Шаг 1. Определите недостающее промежуточное звено

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

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

Шаг 2. Получите правильный пакет сертификатов

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

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

Шаг 3. Настройте Nginx

Для Nginx файл сертификата должен сначала содержать конечный сертификат, а затем необходимые промежуточные сертификаты.

сервер {
    слушать 443 SSL;
    имя_сервера example.com;

    ssl_certificate /etc/ssl/certs/fullchain.pem;
    ssl_certificate_key /etc/ssl/private/example.com.key;
}

Пути являются примерами. Используйте правильные местоположения для вашей среды и убедитесь, что закрытый ключ защищен соответствующими разрешениями.

Проверьте конфигурацию перед перезагрузкой Nginx:

судо nginx -t

Шаг 4. Проверьте Apache и другие конечные точки TLS

Конфигурации Apache могут использоватьSSLCertificateFileпредоставить листовой сертификат и необходимые промежуточные сертификаты. Следуйте документации для вашей версии Apache и развертывания.

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

Шаг 5. Проверьте исправление

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

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

Лучшие практики цепочки сертификатов SSL

Используйте доверенные центры сертификации

Используйте общедоступные центры сертификации для общедоступных веб-сайтов. Для внутренних приложений безопасно распределяйте доверие частного ЦС среди авторизованных клиентов.

Автоматизация обновления и мониторинга

Используйте инструменты управления сертификатами, если они поддерживаются, и предупреждайте администраторов до истечения срока действия сертификатов. Убедитесь, что обновленные сертификаты действительно развернуты и обслуживаются соответствующими конечными точками.

Защитите закрытые ключи

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

Проверка после изменения конфигурации

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

Ведение реестра сертификатов

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

Мониторинг сторонних сертификатов

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

Используйте безопасные конфигурации TLS

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

Заключение

Цепочка сертификатов SSL является важной частью безопасности HTTPS, поскольку она позволяет браузерам и другим клиентам проверять сертификат веб-сайта через путь к доверенному центру сертификации. Понимание конечных, промежуточных и корневых сертификатов помогает администраторам устранять неполадки в неполных цепочках, сертификатах с истекшим сроком действия и ошибках доверия. Регулярный мониторинг, правильная конфигурация сервера, безопасное управление закрытыми ключами и проверка после развертывания помогают поддерживать надежные соединения TLS. Следуя этим практикам, владельцы веб-сайтов и специалисты по безопасности могут уменьшить сбои, связанные с сертификатами, и повысить надежность своей инфраструктуры HTTPS.

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

Что такое цепочка сертификатов SSL?

Цепочка сертификатов SSL — это последовательность цифровых сертификатов, которая устанавливает путь от сертификата веб-сайта к доверенному корневому центру сертификации. Обычно он включает листовой сертификат и один или несколько промежуточных сертификатов.

В чем разница между корневым и промежуточным сертификатом?

Корневой сертификат действует как якорь доверия, когда он принят клиентом. Промежуточный сертификат делегирует выдачу сертификата и подключает конечный сертификат к доверенному корневому сертификату.

Нужно ли веб-серверу отправлять корневой сертификат?

Обычно нет. Сервер обычно отправляет свой конечный сертификат и необходимые промежуточные сертификаты. Обычно клиент уже имеет доверенный корневой сертификат в своем хранилище доверенных сертификатов.

Как я могу проверить цепочку сертификатов SSL?

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

Что вызывает неполную цепочку сертификатов SSL?

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

Как исправить неполную цепочку сертификатов?

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

Является ли цепочка сертификатов SSL тем же, что и сертификат SSL?

Нет. Сертификат содержит информацию об идентификаторе веб-сайта и открытом ключе. Цепочка — это последовательность сертификатов, используемая для установления надежного пути от этого сертификата к приемлемому якорю доверия.

Означает ли действительная цепочка сертификатов, что веб-сайт безопасен?

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

Готовы защититься?

Начните свой путь в области безопасности сегодня

Получите бесплатную консультацию у наших экспертов по кибербезопасности. Никаких обязательств не требуется.