10

イントラネットのWebサービスサイト用に自己署名証明書を設定しようとしています。証明書自体は「OK」であることを示していますが、Webサービスからメソッドを呼び出そうとするとエラーがスローされ、Web参照を追加しているときに警告が表示されます。

正確な情報を提供するための手順とスクリーンショットを次に示します。

WindowsServer2003。IIS。Webサイトは「WebServices.companyName.vmc」です。

1

これがサイトのホストヘッダーです

2

サーバーからは、証明書が「ok」であることが示されます。

ここに画像の説明を入力してください

ここにいくつかのサイト設定があります

ここに画像の説明を入力してください


現在、Visual Studio 2008では、Webリファレンスを追加しています

ここに画像の説明を入力してください

ポップアップに対して「はい」をクリックします

ここに画像の説明を入力してください

このポップアップに対して「いいえ」をクリックします。連続して数回クリックします。

ここに画像の説明を入力してください

Webサービスを呼び出すコード行が実行された後...このエラーが発生します

基になる接続が閉じられました:SSL/TLSのセキュリティで保護されたチャネルの信頼関係を確立できませんでした。

また、ブラウザのWebサービスサイトの場合、URLバーによる小さな南京錠で次のメッセージが表示されます。

ここに画像の説明を入力してください


これが私の既存のコードです:

Dim mySvc As New WebServices.InstantAccount
mySvc.calledFunction()


編集

同様の問題を抱えている人は、iamkrillinの回答と私の回答の両方を読んでください...どちらも問題を解決する2つの異なる方法であるため、制御できる部分(コードまたは証明書)によって異なります。

4

2 に答える 2

13

サービスクライアントを作成する前に、このコード行をどこかに追加してください。

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

注:これにより、アプリはすべての無効な証明書を受け入れ、そのまま移動し続けます。これが受け入れられない場合は、それに関数をアタッチし、処理を実行して、証明書エラーに問題がないかどうかを判断できます。

于 2012-06-29T18:08:43.073 に答える
2

iamkrillinには、彼のコードが無効な証明書を無視し、アプリケーションがWebサービスを使用できるようにするという点で、実用的な解決策がありました。

これに加えて、無効な証明書を無視する必要がなくなるように証明書を修正しました。

ホストヘッダー値(OPに表示)はWebServices.mycompany.vmcでしたが、証明書の「共通名」または「フレンドリ名」(「証明書パス」のOPスクリーンショット3に表示)はWebServicesでした。

一般名とウェブサイトのURLは一致している必要があります。「WebServices.mycompany.vmc」という共通名で自己署名証明書を再作成しましたが、証明書エラーはなくなりました。コーダーがアプリケーションの無効な証明書を無視する必要なしに、Webサービスを使用できます。

于 2012-07-02T21:52:46.407 に答える