0

次のような状況があります。

CA から証明書を受け取り、証明書の有効性を検証するために使用したい CA の公開鍵も持っています。

現在、サードパーティのライブラリである SecureBlackBox を使用していますが、プロジェクトから商用の依存関係を取り除きたいと考えています。SBB では、次のように動作します。

cert.ValidateWithCA(CACertificate);

提供された X509Certificate2 .NET クラスでこれを行う方法はありますか? 引数を取らないメソッド Verify() を見つけましたが、それが何をするのかよくわかりません...

ありがとうございました

4

1 に答える 1

2

が何をするのかをもっと知らなければ、 が完全な代替品である かどうValidateWithCA を具体的に伝えるのは本当に難しいです。最終的に値 1 でネイティブ関数を呼び出します。Verify は、1 つの証明書が他の証明書によって署名されていることを単純に検証するのではなく、チェーン内の証明書の失効などの他のことをチェックします。VerifyVerifyCertVerifyCertificateChainPolicypszPolicyOID

Verifyと比較して、それが機能することを検証する一連のテストを作成することをお勧めしますValidateWithCA

アップデート:

のドキュメントを読んだ後、次ValidateWithCAのように文書化されています

認証局によって署名された証明書を検証します

これは ほど完全ではありませんVerify。そのレベルの検証が必要かどうかを判断するのはあなた次第です。必ずしも必要でない場合は、同じレベルの検証が必要ない場合は、コールバックを設定してServicePointManager.ServerCertificateValidationCallbackカスタム検証を提供できます。

于 2013-08-12T15:08:41.797 に答える