Цепочки сертификатов
Проверяйте цепочки доверия
«Цепочки сертификатов» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.
Что такое цепочка сертификатов?
Цепочка сертификатов, или цепочка доверия, — это упорядоченный список сертификатов, связывающий конечный сертификат сервера с доверенным корневым сертификатом.
Каждый сертификат подписан сертификатом, стоящим выше в цепочке.
Три звена
Типичная цепочка состоит из трёх частей:
- Конечный (сертификат конечного объекта) сертификат фактического сервера.
- Промежуточный сертификат или сертификаты, подписавшие конечный сертификат.
- Корневой сертификат, подписавший промежуточный.
Как проверка проходит по цепочке
При проверке клиент последовательно проверяет каждую подпись, двигаясь вверх:
- Открытый ключ корневого сертификата проверяет промежуточный.
- Открытый ключ промежуточного сертификата проверяет конечный.
Если каждая подпись успешно проверена и цепочка заканчивается доверенным корневым сертификатом, она действительна.
Просмотр цепочки работающего сервера
Просмотреть цепочку, которую предоставляет сервер, можно с помощью s_client из OpenSSL.
openssl s_client -connect example.com:443 -showcertsСвязь издателя и субъекта
Цепочки связываются по совпадающим полям: издатель сертификата совпадает с субъектом сертификата, расположенного выше.
openssl x509 -in leaf.pem -noout -issuer -subjectПроблема отсутствующего промежуточного сертификата
Очень распространённая ошибка — сервер отправляет только свой конечный сертификат и забывает о промежуточном.
В таком случае некоторые клиенты не могут построить путь до корневого сертификата и сообщают о недоверенном сертификате, хотя с технической точки зрения всё действительно.
Построение полной цепочки
Серверы должны отправлять конечный сертификат вместе со всеми промежуточными сертификатами (но обычно без корневого, который уже есть у клиентов).
Этот объединённый файл часто называют fullchain.pem.
cat leaf.pem intermediate.pem > fullchain.pemПроверка с использованием корневого сертификата
Проверить цепочку локально можно, указав доверенный корневой сертификат.
openssl verify -CAfile root.pem -untrusted intermediate.pem leaf.pemПравила проверки пути
Проверка — это не только проверка подписей. Клиент также проверяет следующее:
- Срок действия каждого сертификата ещё не истёк.
- Цепочка не была отозвана.
- Для сертификатов CA в основных ограничениях установлен флаг CA.
- Соблюдаются правила использования ключа и ограничения имён.
Перекрёстная подпись
Иногда новый корневой сертификат ещё не является доверенным повсеместно. Перекрёстная подпись позволяет старому, широко доверенному корневому сертификату также подписать новый промежуточный.
Это создаёт несколько действительных путей и повышает совместимость со старыми устройствами.
Почему цепочки не работают
К распространённым сбоям цепочки относятся:
- Отсутствующий промежуточный сертификат
- Просроченный сертификат в любом месте пути
- Неправильный порядок в файле цепочки
- Недоверенный или отозванный корневой сертификат
Быстрая проверка
Сервер предоставляет только свой конечный сертификат, и некоторые клиенты считают его недоверенным. Какова наиболее вероятная причина?
Итоги
Вы узнали, как цепочка сертификатов связывает конечный сертификат с доверенным корневым через промежуточные сертификаты.
- При проверке выполняется проход по цепочке: проверяются каждая подпись, сроки действия и отзыв.
- Серверы должны отправлять полную цепочку, чтобы избежать ошибок из-за отсутствующего промежуточного сертификата.
- Перекрёстная подпись повышает совместимость.
Далее мы рассмотрим эксплуатационные задачи управления сертификатами.
Часто задаваемые вопросы
Урок «Цепочки сертификатов» бесплатный?
Да — полный текст урока «Цепочки сертификатов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.
Чему я научусь в уроке «Цепочки сертификатов»?
Проверяйте цепочки доверия Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cyber Security Academy?
Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Цепочки сертификатов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cyber Security Academy?
Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Инфраструктура открытых ключей
- Центры сертификации
- Цепочки сертификатов
- Управление сертификатами