0


1

Windowsサービス内から呼び出されたときにSSL Webサービス呼び出しが失敗する

C#Windowsサービス内からWebサービスを呼び出します。 サービスはSSL証明書の背後にあります。 証明書が信頼されたルート(プロバイダーから提供されたパスワード)に登録されました。

問題は、開発マシンからは完全に機能しますが、実稼働サーバーにデプロイすると、403エラーが引き続き発生することです。

サーバー上のサービスを参照できますが、証明書のポップアップを取得できますか?

プロキシなし、ファイアウォール、正常、直接接続。

助言がありますか?

2 Answer


2


403を取得している場合、サーバーが何らかの資格情報を期待していることを意味する可能性が高く、ブラウザーで証明書ポップアップを取得している場合、その資格情報はクライアント証明書であることを意味します。 (403は、IPアドレスなど、他の何らかの理由でサーバーがあなたを好きではないことを意味する場合もありますが、状況を考えると、この可能性は低くなります。)

サービスがクライアント証明書を必要としていると仮定すると、コードまたは構成ファイルのいずれかで、クライアント証明書を呼び出しに明示的に関連付ける必要があります。 (これをどのように行うかは、WCFまたは従来のWeb参照Webサービスを使用しているかどうかによって異なります。)

プロバイダーから提供された証明書が、サービスが探しているクライアント証明書である可能性があります。 その場合は、信頼されたルートではなくLocalMachineの「マイ」ストアに移動する必要があり(クライアント証明書はルート証明書にならないため)、リクエストで使用するようにコードを構成する必要があります。


1


あなたも追加する必要があります

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

「信頼関係を作成できません」というくだらないメッセージが表示されたら!