2017-09-11 15 views
0

Windows Server 2012 R2上のIIS上で動作するアプリケーション(WebAPI、「X」と名付けましょう)があります。ウェブ上の他の独立したAPIに "X"を接続できないことがあります。私は(WebClientクラスを使用して)https://google.comをダウンロードすることはできませんが、私はその現在のサーバー上のWebブラウザでそれを閲覧することができますいくつかのテストと同時に、「X」をやったSSLで他のURLにWebページが接続できない場合があります

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

The remote certificate is invalid according to the validation procedure.

:私たちは、エラーが発生しました。

また、アプリケーション全体(下のコード)でサーバー証明書のエラーを無視しようとしましたが、それも役に立ちませんでした。

protected void Application_Start() 
{  
    ServicePointManager.ServerCertificateValidationCallback += 
     (sender, cert, chain, sslPolicyErrors) => true; 
} 

私のクライアントは「X」に接続する際に問題はありません。また、あるサーバでエラーが発生した場合、「X」の別のインスタンスを持つ他のサーバに(例えばhttps://google.com)接続することができます。

何が間違っている可能性がありますか?

答えて

0

IIS Webアプリケーションが、マシン上の証明書にアクセスできないユーザーコンテキストで実行されているようです。ただし、ブラウザはアクセス権のある別のユーザーコンテキストで実行されています。それはあなたのテスト結果を説明します。

ユーザーが証明書にアクセスできる場合は、独立したAPIから証明書をダウンロードする必要があります。 http://brainof-dave.blogspot.com.au/2008/08/remote-certificate-is-invalid-according.html

あまりにもこれらのリソースをチェックアウト: https://blogs.msdn.microsoft.com/saurabh_singh/2009/07/02/required-permissions-when-calling-a-web-service-using-client-certificate-for-authentication-in-an-asp-net-web-application/

https://technet.microsoft.com/en-us/library/cc772237(v=ws.10).aspx

+0

おかげでドナルドが、それは、私たちは私たちのアプリケーションのインスタンスを実行しているすべてのサーバーで使用する各APIのための証明書を手動で追加することが必要であることを意味しない、この参照してください。 ? また、http://google.comやhttps://graph.windows.netの証明書ファイルを取得できないと思います – kkopieczek

関連する問題