1

SSL 経由でリモート サーバーに接続する .NET アプリケーションがあります。テスト環境では、リモート サーバーは自己署名証明書を使用します。デフォルトでは、SSL 接続は失敗します。証明書を信頼されたルート証明機関ストアにインストールすると、接続は成功します。

ただし、現在は信頼できる証明機関であるため、この証明書を使用して他のサイトの証明書に署名することができ、Internet Explorer などのコンピューター上のアプリケーションはそれらを信頼します。この証明書を特定の Web サイトの認証には信頼できるようにしたいが、証明機関としては信頼できないようにしたい。そうする方法はありますか?

4

1 に答える 1

2

特定の自己署名証明書またはカスタム証明書をさらに許可する独自の証明書検証メカニズムを実装できます。

RemoteCertificateValidationCallback Delegateを見てください。このコールバックでは、検証がすでに成功しているかどうかを確認できます ( sslPolicyErrors == SslPolicyErrors.None)。何もする必要はありません。それ以外の場合は、指定された証明書が、このコンテキストで信頼するカスタム証明書と等しいかどうかを確認できます。証明書が一致する場合は true を返します。

独自の RemoteCertificateValidationCallback Delegate を使用すると、接続指向にすることができます (たとえば、このSslStream コンストラクターを使用します)。

于 2012-04-04T14:41:54.180 に答える