私のIIS(Webサーバー)にはクライアント証明書が必要です。証明書の有効性をチェックし、データベース(Audit)からいくつかの情報を読み取り、記録する必要があります。
私は次のコードを持っている
using System.Security.Cryptography.X509Certificates;
...
HttpClientCertificate cert = Request.ClientCertificate;
if (cert.IsPresent && cert.IsValid) {
X509Certificate2 cer = new X509Certificate2(cert.Certificate);
bool verified = cer.Verify();
...
AuditLog( ... );
}
cert.IsValid
証明書が有効であることを示します。 X509Certificate2オブジェクトをインスタンス化し、証明書の有効性を再確認する必要がありますか(なぜ)?
回答:
回答№1の場合は3証明書が有効でない場合は、取得できませんでしたここまで。 IISはハンドシェイク中にそのことを確認し、無効な場合は接続を中止します。 Subject DNで表されるIDがこのアプリケーションのクライアントであることを許可されていることを確認するだけです。