3

HttpListenerシンプルなWebサーバーを実装するために使用しています。ポート 44430 にバインドしています。IIS とポートを共有していません。以下を使用してサーバー証明書を構成しましたnetsh

netsh http add sslcert ipport=0.0.0.0:44430 ^
    certhash=a614ebdfd07968dedd3afdb1cb8c696988dd7734 ^
    appid="{00112233-4455-6677-8899-AABBCCDDEEFF}"

ここで、クライアント証明書を要求したいと思います。上記のコマンドに追加clientcertnegotiation=enableすると、 で有効と表示されnetsh http show sslcertます。

サーバーで次のコードを使用します。

var context = listener.GetContext();
var clientCertificate = context.Request.GetClientCertificate();

...しかし、Internet Explorer を使用してサイトを参照するとclientCertificatenull.

私は何が欠けていますか?

4

1 に答える 1

0

Windows 証明書ストアにクライアント証明書が必要です。

証明書は、サーバー ホストで信頼されている CA (認証局) によって署名される必要があります。

その後、IE はクライアント証明書を見つけてサーバーに渡すことができるはずです。

于 2014-01-14T08:06:04.420 に答える