IIS 7 で、サイトの https バインディングを作成しました。https のクライアント証明書を要求し、引き続き http エンドポイントを保持したいと考えています。
つまり、全面的に SSL を必要とせず、(SSL 設定の「SSL が必要」を介して) http エンドポイントへのアクセスを禁止することなく、https エンドポイントにクライアント証明書を要求したいと考えています。これは可能ですか?
IIS 7 で、サイトの https バインディングを作成しました。https のクライアント証明書を要求し、引き続き http エンドポイントを保持したいと考えています。
つまり、全面的に SSL を必要とせず、(SSL 設定の「SSL が必要」を介して) http エンドポイントへのアクセスを禁止することなく、https エンドポイントにクライアント証明書を要求したいと考えています。これは可能ですか?
クライアント証明書は通常、双方向SSLに使用されるため、サーバーだけでなくクライアントもその秘密鍵を使用してトラフィックを暗号化します。
全面的にhttpsを適用したくない場合は、クライアント証明書を受け入れて(SSL設定を参照)、アプリケーションに証明書の検証を実装することをお勧めします。
詳細については、MSDNのRequest.ClientCertificateを参照してください。
if (HttpContext.Current.Request.IsSecureConnection)
{
// it's SSL, so check the client cert
bool authorized = IsClientCertAuthorized(HttpContext.Current.Request.ClientCertificate)
}
次に、必要に応じてそのメソッドを実装します。
注:私はこれをテストしていませんので、試した場合はコメントしてください。