Я использую оснастку Enterprise PKI для диагностики и проверки работоспособности системы MSFT PKI.
Есть ли способ создать сценарий / автоматизировать этот инструмент, чтобы предупреждать меня об ожидающем истечении срока действия CRL или об отсутствии AIA?
Нет, PKIView.msc не предоставляет никаких средств / возможностей автоматизации. Вы должны писать свои собственные сценарии. Я бы посоветовал (извините, фактического кода нет, но способ сделать это) - рассмотреть следующий план и возможные инструменты (при условии, что вы будете использовать Windows PowerShell):
CR_PROP_CAXCHGCERT
в PropId
параметр)Есть много способов, но я бы выбрал этот (я планирую поработать над этим в следующем году, так что это возможно).
и последнее предложение: если вы ищете надежное решение, не полагайтесь на синтаксический анализ вывода certutil, потому что его результат зависит от ряда факторов и может отличаться от ожидаемого.
Также эта задача упростится, если вы будете использовать Модуль PKI PowerShell. Этот модуль уже предлагает способы для перечисления корпоративных центров сертификации, чтения списков отзыва сертификатов управляемым способом, получения сертификатов CA Exchange и так далее.
обновление 26.12.2014: теперь доступен PoC скрипта: Корпоративная PKI (pkiview.msc) PowerShell Edition (PoC)
MMC будет показывать красные / желтые значки, когда что-то не так, но это интерактивная консоль и не имеет возможностей автоматизации. Я использую powershell для вызова команды CLI CERTUTIL для проверки истечения срока действия и invoke-webrequest для проверки доступности AIA.
gci \\servername\certenroll\*.crl | foreach {
certutil -dump $_.fullname | out-string | % { $_ -match "Next CRL Publish\r\n\s+(.*)" | out-null }
$expire = [datetime]$matches[1]
$expire
# do some date math on $expire
# send some email if about to expire
}
$aia = "http://pki.acme.com/acme.crt"
if ( (invoke-webrequest $aia).statuscode -ne 200) {
# not found, send-mailmessage
}