C#.NET で X509 証明書スキームを設定するのに苦労しています。サーバーで SSL が有効になっており、SSL 経由で接続が行われています。経由でリクエストのストアに証明書を追加していrequest.ClientCertificates.Add()
ます。HttpRequest.ClientCertificate
ただし、ハンドシェイク要求にクライアント証明書が添付されていません (これは、サーバーのコードをチェックし、Fiddler でハンドシェイクを分析することで確認しています)。
私が知る限り、ここでの問題は、サーバーがクライアント証明書を要求していないことです。証明書は間違いなく送信要求に含まれていますが、ハンドシェイクには何も表示されず、サーバー側にも表示されません。それらは単にエーテルに消えます。証明書を選択する背後にあるセマンティクスを認識しています (このページのおかげで) が、問題は解決していません。CA は同じである必要があります。テストの各エンドで、同じ自己署名の秘密鍵で保護された証明書を使用しています。
どうやら certutil.exe を使用して、特定のサーバー証明書で使用するときにどの証明書が選択されるかを確認できます。このように使用する方法を理解できれば、これは大きな助けになるでしょう。Certutil は、文書化が不十分な大きなプログラムです。どんな助けでも大歓迎です。