воскресенье, 12 сентября 2010 г.

Проблема с проверкой CRL сертификатов в Exchange 2010

Часто при использовании цифровых сертификатов для Exchange 2010 вы можете столкнуться со следующей ошибкой в консоли EMC, сопровождающейся описанием: The certificate status could not be determinde because the revocation check failed.
Из-за этого вы не можете назначить данный сертификат для служб Exchange из консоли (хотя, при желании, можете это сделать с помощью комманды Enable-ExchangeCertificate из EMS). При этом просмотр самого сертификат может не показать ничего подозрительного.
Более того, попытка проверить доступность списка отзыва сертификатов вручную (например, с помощью веб-браузера, файлового менеджера или adsiedit) заканчивается успешно. Что делать в таком случае?

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

Если же вы используете собственную инфраструктуру открытых ключей и центры выдачи сертификатов (например, на базе Microsoft CA), то следует проверить корректность настроек путей AIA и CRL в вашей инфраструктуре. Сделать это можно через оснастку pkiview.msc, запущенной на сервере выдачи сертификатов.
В данном примере используется двухуровневая инфраструктура PKI, с корневым изолированным ЦС (Offline Standalone Root CA) и подчиненным ЦС уровня предприятия (Enterprise Intermediate CA). Проблемы могут быть из-за неправильного конфигурирования путей на этапе установки ЦС или из-за их недоступности на текущий момент (ошибок в DNS, маршрутизации, блокировки брандмаэрами, антивирусами).

Чтобы исправить ошибку в данном случае необходимо сделать доступным CRL хотя бы по одному из двух доступных путей (http или file).

Кроме того, если ваш корневой ЦС является автономным и не доступен по сети, хорошей идеей будет блокировка проверки CRL корневого ЦС. Если этого не сделать, то, например, при проверке выданного сертификата для Exchange с помощью утилиты certutil -verify -urlfetch <certname.crt> вы можете встретить в тексте отчета сообщение об ошибке: CertUtil: The revocation function was unable to check revocation because the revocation server was offline 0x80092013 (-2146885613).

Для блокировки проверки выполните на подчиненном ЦС команду: certutil -setreg ca\CRLFlags +CRLF_REVCHECK_IGNORE_OFFLINE и перезапустите службу ЦС net stop certsvc & net start certsvc

После этого вернитесь на сервер Exchange, очистите кэш certutil -urlcache crl delete и перезагрузите сервер Exchange.

Комментариев нет:

Отправить комментарий