Обновление CRL offline Root CA
В иерархическом PKI многоуровнего типа (с offline root CA) - есть шанс столкнуться с проблемой при выпуске сертификатов. Запрос к ЦС на издание сертификата будет отклонен, а в ЦС можно будет найти следующее описание ошибки:
The revocation function was unable to check revocation because the revocation server was offline
При этом, точки публикации CRL (http, smb) могут быть доступны.
Скорее всего, проблема состоит в том, что подчиненный CA пытается найти списки отозванных сертификатов корневого центра, но, т.к. корневой ЦС находится в offline - он их не обновляет.
В этом можно убедиться, найдя файл crl, и посмотрев дату его next update. Пример:
Для решения проблемы - нам необходимо включить корневой ЦС и выпустить CRL, а затем скопировать его в точку публикации списков отозванных сертификатов.
При недоступных списках отозванных сертификатов сервис CA может вообще не стартовать. Если необходимо заставить заработать ЦС срочно - можно временно сказать CA не проверять отозванные сертификаты. Это можно сделать командой:
certutil –setreg ca\CRLFlags +CRLF_REVCHECK_IGNORE_OFFLINE
Исправление проблемы на корневом ЦС
Можно посмотреть срок жизни и интервал публикации CRL и поправить его в соответствии с потребностями. Этот срок будет определять время, в течение которого нам необходимо будет включить корневой ЦС и выпустить его обновленный CRL, чтобы подчиненные центры не перестали работать.
Для этого открываем оснатску certificate authority и заходим в свойства вкладки revoked certificates, где и выставляем периодичность публикации.
Пример для полугодичного интервала обновлений:
Теперь, после того, как нужный срок жизни выставлен - публикуем новый CRL. Для этого снова кликаем по revoked certificates, выбираем all tasks → publish.
Находим место публикации и файл crl, который изменился. Теперь нам необходимо скопировать его в точку публикации CRL, в которую смотрят издающие CA, заменив файл с истёкшим сроком.
Найти место, в котором CA смотрит CRL можно на вкладке extensions в свойствах соответствующего ЦС, как на скриншоте ниже.
Скорее всего, будет лучше остановить временно службу CA на издающем ЦС перед этим.
Если мы останавливали проверку crl на уровне ЦС - лучше вернуть её обратно.
certutil –setreg ca\CRLFlags -CRLF_REVCHECK_IGNORE_OFFLINE
Теперь можно запустить службу ЦС и проверить выпуск сертификатов.