0x80092013 (CRYPT_E_REVOCATION_OFFLINE) — revocation function was unable to check revocation because the revocation server was offline

По традиции используем два центра сертификации (Certification Authority, CA) — Offline Root CA (корневой) и Enterprise Subordinate CA (подчиненный). Подчиненный CA занимается выпуском сертификатов, корневой стоит в выключенном состоянии и включается только для обновления своего сертификата, сертификата подчиненного CA и списка отзыва корневого сертификата (Certificate Revocation List, CRL).

В какой то момент центр сертификации на подчинённом сервере перестал запускаться с ошибкой 0x80092013 (CRYPT_E_REVOCATION_OFFLINE). Поиск в интернете находит отличную статью https://windowsnotes.ru/activedirectory/oshibka-0x80092013-pri-zapuske-sluzhby-certification-authority/ . Но проблема оказалась не в недоступности списка отзыва по одному из путей получения CRL, а в просроченном CRL корневого сертификата. Не смотря на то, что текст ошибки звучит как о «недоступности сервера отзыва», всё было на месте и доступно. Для диагностики можно было посмотреть логи IIS центра распространения, в которых видно что при старте службы «центра сертификации» сервер забирает CRL. Некоторое время я не мог понять в чём дело — текст ошибки при старте службы и событие с «Event ID 48» говорили о недоступности сервера на котором расположен CRL. Только спустя некоторое время до меня дошло, что корневой центр сертификации публикует CRL в свою папку с периодичностью в шесть месяцев и CRL не копируется в точку распространения, т.е. в точке распространения оказался просроченный CRL. Посмотреть дату, когда CRL должен быть обновлен можно прямо в нём, открыв его:

Вывод, необходимо настроить и контролировать: включение Root CA сервера, копирование сертификата и CRL в точку распространения.

Полезная информация

Запуск CA в режиме отключенной проверки CRL:

certutil –setreg ca\CRLFlags +CRLF_REVCHECK_IGNORE_OFFLINE

Включить проверку обратно:

certutil –setreg ca\CRLFlags -CRLF_REVCHECK_IGNORE_OFFLINE

За срок жизни отвечают ключи certutil: CRLPeriod и CRLPeriodUnits — устанавливают срок действия базового списка отзыва сертификатов. CRLPeriod может иметь следующие значения: часы, дни, недели, месяцы и годы.

Чтобы у вас было достаточно времени для аварийного подписания CRL или восстановления вашего CA, можно выполнить некоторую дополнительную настройку, которая может оптимизировать интервалы публикации CRL. Необходимо настроить период перекрытия CRL. Чтобы настроить период перекрытия CRL, необходимо настроить параметры реестра CRLOverlapUnits и CRLOverlapPeriod

Опубликовать списки отзыва: certutil -CRL

Ссылки:

https://www.sysadmins.lv/retired-msft-blogs/xdot509/pki-design-considerations-certificate-revocation-and-crl-publishing-strategies.aspx

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика