web-dev-qa-db-ja.com

「エンタープライズPKI」MMCはPKIの自動テストを可能にしますか?

エンタープライズPKIスナップインを使用して、MSFTPKIシステムの状態を診断およびチェックしています。

このツールをスクリプト化/自動化して、CRLの期限切れの保留またはAIAの欠落を警告する方法はありますか?

5

いいえ、PKIView.mscは自動化手段/機能を提供していません。独自のスクリプトを作成する必要があります。私が提案すること(申し訳ありませんが、実際のコードはありませんが、これを行う方法)は、次の計画と可能なツール(Windows PowerShellを使用すると仮定)を検討することです。

  • すべてのエンタープライズ認証局を列挙します( ICertConfig インターフェイスを使用)
  • 各CAをループして、最新のCA Exchange証明書を取得します( ICertAdmin :: GetCAProperty with CR_PROP_CAXCHGCERTPropIdパラメータ内)
  • X509Chanin.Build() メソッドを使用して、各CAExchange証明書のチェーンを構築します。これにより、検査するすべての証明書が提供されます。
  • 各証明書をループし、 CryptGetObjectUrl 関数を使用して、CDPおよびAIA拡張機能からURLを抽出します。
  • Invoke-WebRequest コマンドレットを使用して、前の手順で収集したURLからオブジェクトをダウンロードしようとします。
  • ダウンロードの失敗を報告します。ダウンロードが成功した場合、有効期限が近づいている、またはすでに有効期限が切れているアイテムについて警告するしきい値を設定できます。

いろいろな方法がありますが、これを使います(来年中に取り組む予定なので可能です)。

最後の提案:信頼できるソリューションを探している場合は、certutilの出力解析に依存しないでください。その出力は多くの要因に依存し、期待したものではない可能性があるためです。

また、 PowerShell PKIモジュール を使用すると、このタスクが簡略化されます。このモジュールは、エンタープライズCAの列挙、管理された方法でのCRLの読み取り、CAExchange証明書の取得などの方法をすでに提供しています。

update 26.12.2014:スクリプトのPoCが利用可能になりました: Enterprise PKI(pkiview.msc)PowerShell Edition(PoC) ==

4
Crypt32