Monitoring
“企業 PKI”MMC 是否允許對 PKI 進行任何自動化測試?
我正在使用 Enterprise PKI 管理單元來診斷和檢查 MSFT PKI 系統的執行狀況。
有沒有辦法編寫/自動化這個工具來提醒我 CRL 即將到期或缺少 AIA?
不,PKIView.msc 不提供任何自動化手段/功能。您必須編寫自己的腳本。我的建議(抱歉,沒有實際程式碼,但有一種方法)是考慮以下計劃和可能的工具(假設您將使用 Windows PowerShell):
- 列舉所有企業證書頒發機構(通過使用ICertConfig介面)
- 遍歷每個 CA 並檢索最新的 CA Exchange 證書(參數中帶有ICertAdmin::GetCAProperty)
CR_PROP_CAXCHGCERT``PropId
- 使用X509Chanin.Build()方法為每個 CA Exchange 證書建構鏈。這將為您提供所有要檢查的證書。
- 遍歷每個證書並使用CryptGetObjectUrl函式從 CDP 和 AIA 擴展中提取 URL。
- 使用Invoke-WebRequest cmdlet 嘗試從上一步中收集的 URL 下載對象。
- 報告任何失敗的下載。如果下載成功,您可以設置門檻值以警告項目即將過期或已過期。
有很多方法,但我會選擇這個(我計劃在明年做這個,所以這是可能的)。
最後一個建議:如果您正在尋找可靠的解決方案,請不要依賴 certutil 輸出解析,因為它的輸出取決於許多因素,可能不是您所期望的。
此外,如果您將使用PowerShell PKI 模組,此任務將得到簡化。該模組已經提供了列舉企業 CA、以託管方式讀取 CRL、檢索 CA Exchange 證書等的方法。
26.12.2014 更新:腳本的 PoC 現在可用:企業 PKI (pkiview.msc) PowerShell 版 (PoC)