2016-05-19 11 views
1

私は、サードパーティのAPIに対するクライアント証明書の認証を行うWebアプリケーションを持っています。アプリケーションは動作していますが、Azure App Servicesに移行したいと思います。クライアント側の証明書認証の検証を無効にする

クライアント認証に使用される証明書は、信頼されたルート証明書ストアであるCAから発行されません。 Azureは、明白な理由から、App Servicesの信頼されたルート証明書ストアに証明書を追加することを許可していません。

クライアントのデフォルトの動作を知ることができる限り、信頼チェーンを検証できない場合はクライアント証明書を送信しません。この動作を無効にして、とにかく証明書を送信する方法はありますか?

私は、ServicePointManager.ServerCertificateValidationCallbackは、サーバー証明書のチェックをオーバーライドできますが、クライアント証明書の検証には何もしません。私の知る限り

答えて

0

私はあなたが正しい軌道に乗ってこのコードを使用していることだと思います:

ServicePointManager 
.ServerCertificateValidationCallback += 
(sender, cert, chain, sslPolicyErrors) => true; 

は実際にあなた、あなたが望む結果を得るべきでしょうか?サーバーがクライアント証明書を検証するときにエラーが発生すると、コールバックをtrueに設定するとエラーが無効になります。私はあなたがすでにこの解決策を試したかどうかについては不明です。

+0

私はこのアプローチを試みました。クライアント証明書の送信には当てはまらないようです。私が持っている問題は、リクエストにクライアント証明書を追加しても、実際には送信されず、ServerCertificateValidationCallbackが呼び出されないということです。 – Jacob

+1

このすべてが証明書を使用する点を否定するわけではありませんか?妥当性に関係なく、何らかの証明書を受け入れるだけであれば、クライアント証明書を使用する理由は何ですか? –

+0

私は@SimonWに同意しますが、あなたがルートCA(私が知っている限られたシナリオ)を持っていない場合でも、有効であるか、自己署名証明書を使用している可能性があります。個人的には、私は常に証明書を適切に試して受け入れます。 –

関連する問題