Жизненный цикл и отзыв сертификатов
Проследите путь сертификата от выпуска и продления до отзыва и узнайте, как CRL и OCSP в реальном времени сообщают статус отзыва.
«Жизненный цикл и отзыв сертификатов» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Жизненный цикл Certificate
Каждый цифровой сертификат проходит определённый жизненный цикл — от создания до вывода из эксплуатации. Этапы таковы: Request and Enrollment (создание пары ключей, формирование CSR), Issuance (CA проверяет данные и подписывает сертификат), Deployment (установка на сервер или устройство), Use (период активной эксплуатации), Renewal (до окончания срока действия) и Revocation or Expiry (завершение жизненного цикла). Управление этим жизненным циклом в большом масштабе — особенно в организациях с тысячами сертификатов — требует автоматизации и инструментов управления жизненным циклом сертификатов (CLM), поскольку ручное отслеживание неизбежно приводит к просроченным сертификатам и сбоям в работе.
Certificate Signing Request (CSR)
Жизненный цикл сертификата начинается с Certificate Signing Request (CSR). Запрашивающая сторона создаёт пару ключей, затем формирует CSR, содержащий открытый ключ и сведения о Subject (CN, O, C), и подписывает его закрытым ключом, доказывая владение закрытым ключом без его раскрытия. CSR передаётся в CA, который проверяет личность запрашивающей стороны и, если запрос одобрен, подписывает сертификат. Закрытый ключ никогда не покидает владение запрашивающей стороны. Создание CSR — критически важный этап, на котором определяется стойкость ключа: следует использовать RSA длиной не менее 2048 бит или ECC длиной 256 бит.
# Complete CSR generation workflow
# Step 1: Generate private key (RSA 2048)
openssl genrsa -out server.key 2048
# Step 2: Create CSR with all required fields
openssl req -new -key server.key -out server.csr \
-subj '/CN=www.example.com/O=Example Corp/OU=IT/C=US/ST=CA/L=San Jose'
# Step 3: Verify CSR content before submitting
openssl req -in server.csr -noout -text | grep -A5 'Subject'Продление Certificate
Сертификаты необходимо продлевать до истечения даты notAfter. Рекомендуется начинать процесс продления как минимум за 30 дней до окончания срока действия (многие организации ориентируются на 60–90 дней). Обычно продление включает создание нового CSR и закрытого ключа, отправку запроса в CA и замену старого сертификата и ключа на всех серверах, где они развёрнуты. Let's Encrypt автоматизирует этот процесс с помощью протокола ACME: инструмент certbot автоматически продлевает сертификаты, когда до окончания их срока действия остаётся менее 30 дней. Просроченные сертификаты вызывают ошибки браузера, из-за которых пользователи не могут получить доступ к службам.
# Automated renewal with Certbot (Let's Encrypt)
# Install certbot and obtain a certificate
certbot --nginx -d example.com -d www.example.com
# Certbot sets up automatic renewal via cron or systemd timer
# Manual renewal test (dry run)
certbot renew --dry-run
# Check when certificates expire
certbot certificates
# Certificate Name: example.com
# Expiry Date: 2026-09-15 (VALID: 87 days)Зачем отзывать Certificate?
Отзыв сертификата — это процесс признания сертификата недействительным до запланированной даты окончания его действия. Причины отзыва включают: компрометацию закрытого ключа (наиболее срочный случай — требуется немедленный отзыв), ошибочный выпуск сертификата (неверный домен или организация), изменение сведений об Subject (переименование компании, уход сотрудника) или компрометацию самого CA. Отзыв критически важен, поскольку браузеры и системы, не знающие об отзыве сертификата, продолжат ему доверять, предоставляя злоумышленнику, завладевшему украденным закрытым ключом, возможность активной MITM-атаки до истечения срока действия сертификата или момента, когда отзыв станет известен.
Списки отзыва Certificate (CRL)
Certificate Revocation List (CRL) — это подписанный список, публикуемый CA и содержащий серийные номера всех отозванных им сертификатов, срок действия которых ещё не истёк. Клиенты загружают CRL, сохраняют его в кэше и проверяют, присутствует ли серийный номер предъявленного сертификата в списке. У CRL есть существенные ограничения: списки могут быть очень большими (у крупных CA — миллионы отозванных сертификатов), клиенты часто хранят их в кэше часами или днями, что приводит к задержкам, а загрузка полного CRL для каждого соединения неэффективна. CRL по-прежнему используются, но всё чаще дополняются или заменяются OCSP.
# Download and view a CRL
# First get the CRL URL from the certificate
openssl x509 -in cert.pem -noout -text | grep -A4 'CRL Distribution'
# URI:http://crl3.digicert.com/DigiCertGlobalRootCA.crl
# Download and decode the CRL
openssl crl -inform DER -in DigiCertGlobalRootCA.crl -noout -text | head -40
# Shows: Revoked Certificates list with serial numbers and revocation datesOCSP: Online Certificate Status Protocol
OCSP (Online Certificate Status Protocol) обеспечивает проверку отзыва сертификата в реальном времени, не требуя от клиентов загружать целиком CRL. Клиент отправляет запрос обработчику OCSP CA, указывая серийный номер сертификата. Обработчик отвечает подписанным ответом, сообщающим, что сертификат действителен, отозван (с датой и причиной отзыва) или имеет статус неизвестен. OCSP работает быстрее и предоставляет более актуальные сведения, чем CRL, но для каждого TLS-соединения требуется дополнительный обмен данными по HTTP с обработчиком OCSP, что увеличивает задержку. Ответы OCSP подписываются CA для предотвращения подделки.
# Query OCSP status manually
# Get OCSP URL from certificate
OCSP_URL=$(openssl x509 -in cert.pem -noout -ocsp_uri)
echo $OCSP_URL # http://ocsp.digicert.com
# Check certificate revocation status via OCSP
openssl ocsp -issuer intermediate_ca.pem \
-cert cert.pem \
-url $OCSP_URL \
-text -noverify
# Response: cert.pem: goodOCSP Stapling: решение проблемы производительности
OCSP Stapling решает проблему задержки при проверке OCSP в реальном времени. Вместо того чтобы при каждом рукопожатии TLS запрашивать ответчик OCSP у CA, сервер заранее получает собственный ответ OCSP от CA и «прикрепляет» его к рукопожатию TLS. Клиент получает свежий ответ OCSP, подписанный CA, непосредственно от сервера — дополнительный обмен данными не требуется. Сервер периодически обновляет прикреплённый ответ OCSP, обычно раз в час. OCSP Stapling ускоряет установление соединения и снижает нагрузку на ответчики OCSP центра сертификации, сохраняя возможность проверки отзыва сертификата.
# Enable OCSP Stapling in nginx
# In your server block:
# ssl_stapling on;
# ssl_stapling_verify on;
# ssl_trusted_certificate /path/to/chain.pem;
# resolver 8.8.8.8 8.8.4.4 valid=300s;
# Verify OCSP Stapling is working
openssl s_client -connect example.com:443 -status 2>/dev/null | \
grep -A 20 'OCSP Response Status'
# OCSP Response Status: successful (0x0)
# Cert Status: GoodРасширение OCSP Must-Staple
OCSP Must-Staple — это расширение X.509, которое сообщает браузерам, что сервер обязан предоставить прикреплённый ответ OCSP. Без него браузеры используют режим «мягкого отказа», если проверка OCSP завершается ошибкой: они всё равно разрешают соединение, чтобы сбой ответчика OCSP не блокировал все соединения TLS. Злоумышленник может воспользоваться таким поведением, блокируя запрос OCSP клиента и создавая впечатление, что certificate всё ещё действительно даже после отзыва. OCSP Must-Staple предотвращает это, требуя корректный прикреплённый ответ; без него браузер отклоняет соединение. Распространение этого механизма остаётся ограниченным из-за сложности внедрения.
Закрепление certificate и отзыв сертификата
Отзыв сертификата и закрепление сертификата решают одну и ту же проблему — доверие к поддельным сертификатам, — но делают это по-разному. Отзыв (CRL/OCSP) — реактивный механизм: CA аннулирует certificate после обнаружения проблемы. Закрепление — проактивный механизм: приложение отклоняет любой сертификат, кроме предварительно одобренного. Закрепление обеспечивает более сильную защиту, чем отзыв, поскольку работает даже в том случае, если CA не отозвал certificate своевременно, но делает развёртывание менее гибким. Для экзамена Security+ необходимо знать оба механизма и понимать, что отзыв — стандартный механизм PKI, а закрепление — необязательная мера эшелонированной защиты.
Закрепление certificate и отзыв сертификата: повторение
Когда certificate отзывается, CA назначает ему код причины отзыва, который помогает клиентам и администраторам понять причину. Распространённые коды причин, определённые в RFC 5280, включают: keyCompromise (закрытый key был скомпрометирован), cACompromise (выдавший сертификат CA был скомпрометирован), affiliationChanged (организация субъекта изменилась), superseded (выдан новый сертификат взамен прежнего), cessationOfOperation (домен больше не используется) и privilegeWithdrawn (полномочие отозвано). Код причины указывается и в записях CRL, и в ответах OCSP, предоставляя контекст командам реагирования на инциденты, расследующим события отзыва.
Автоматизированное управление сертификатами: ACME
Протокол ACME (Automatic управление сертификатами Environment), используемый Let's Encrypt, автоматизирует весь жизненный цикл сертификатов. Клиенты ACME, такие как certbot, автоматически запрашивают, обновляют и развёртывают сертификаты без участия человека. CA использует проверочные задания владения доменом, чтобы подтвердить право владения доменом: задание HTTP-01 требует разместить определённый файл по известному URL, а задание DNS-01 — создать запись DNS TXT. ACME преобразовал управление сертификатами: 90-дневные сертификаты Let's Encrypt теперь обеспечивают значительную долю HTTPS-трафика в интернете и автоматически обновляются.
# ACME/certbot lifecycle
# Initial certificate issuance (HTTP challenge)
certbot certonly --webroot -w /var/www/html \
-d example.com -d www.example.com
# Or DNS challenge (for wildcard certs)
certbot certonly --dns-route53 \
-d '*.example.com' -d example.com
# Automatic renewal via cron (certbot installs this)
# 0 12 * * * root certbot renew --quietБыстрая проверка
Проверьте своё понимание концепций CompTIA Security+ (SY0-701), рассмотренных в этом уроке.
Итоги урока
В этом уроке Вы узнали, что жизненный цикл certificate проходит этапы от создания CSR до выпуска, развёртывания и обновления или отзыва; CRL предоставляет списки отозванных сертификатов пакетами, а OCSP — сведения о статусе каждого сертификата в реальном времени; OCSP Stapling устраняет задержку при использовании OCSP в реальном времени; а ACME (Let's Encrypt) автоматизирует весь жизненный цикл обновления. Далее мы рассмотрим варианты применения PKI.
Часто задаваемые вопросы
Урок «Жизненный цикл и отзыв сертификатов» бесплатный?
Да — полный текст урока «Жизненный цикл и отзыв сертификатов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «Жизненный цикл и отзыв сертификатов»?
Проследите путь сертификата от выпуска и продления до отзыва и узнайте, как CRL и OCSP в реальном времени сообщают статус отзыва. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Жизненный цикл и отзыв сертификатов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Центры сертификации и цепочки доверия
- Структура сертификата X.509
- Жизненный цикл и отзыв сертификатов
- Сценарии применения PKI: HTTPS, S/MIME и подпись кода