0

SslStream を使用してサーバーに接続しようとしています。サーバーの所有者から PFX ファイルを受け取り、それをクライアントにインストールしましたが、コードから証明書にアクセスする方法がわかりません。

具体的には、次のコードがあると想像してください...

var serverName = "?";
var stream = new SslStream();
stream.AuthenticateAsClient(serverName);

serverName の値は?
サーバーのIPアドレス
「MyServer」
「CN = MyServer」 を試してみました

これらの値はどれも機能していないようです。マシンの証明書ストアにアクセスするために何か追加する必要がありますか、それとも serverName が何である必要があるのか​​ わかりませんか?

4

1 に答える 1

0

これは、接続先のホストのサーバー証明書サブジェクトの共通名 (CN - 通常は完全修飾ドメイン名) である必要があります。

たとえば、サーバー証明書のサブジェクトが次のようになっているとします。

CN = www.verisign.com, OU = Production Security Services, O = VeriSign, Inc ...

あなたが使用する必要があります:

stream.AuthenticateAsClient("www.verisign.com");

接続先のホストがクライアント証明書の検証なしで接続を許可している場合は、(HTTPS の場合などにブラウザーを使用して) 接続してサーバー証明書を確認するか、OpenSSL clientを使用してみてください。

于 2011-06-03T21:34:13.083 に答える