0

SSL を使用するように構成された IIS で実行されている WCF サービスがあり、有効な証明書が既にインストールされて実行されています。でウェブサイトにアクセスする

https://my_website/anypage.aspx 

ページにアクセスできます。URL にアクセスする

https://my_website/mywcfservice.svc 

「サービスを作成しました。このサービスをテストするには、クライアントを作成し、それを使用してサービスを呼び出す必要があります(...)」という Web サービス ページが表示されます。とにかく、「この Web サイトのセキュリティ証明書に問題があります」という警告ページが表示され、[この Web サイトに進む] をクリックすることに注意してください。

サーバー側では、web.config は次のように構成されます。

<security mode="Transport">
  <transport clientCredentialType="None" />
</security>

... ... ...

クライアント側では、プロキシまたは構成ファイルを使用していません。次のようなコードのみを使用して接続しています。

this.Channel = new ChannelFactory<T>(binding, new EndpointAddress(serviceUri));
((WSHttpBinding)this.Channel.Endpoint.Binding).Security.Mode = SecurityMode.Transport;
((WSHttpBinding)this.Channel.Endpoint.Binding).Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
this.Channel.CreateChannel();

クライアントからコードで接続するという強力なルールがあるため、他の方法は使用できません。チャネルは十分に開かれていますが、メソッドを呼び出すと、「検証手順に従ってリモート証明書が無効です」というエラーが表示されます。

httpsなしで問題なく動作していました。

クライアント側では、「信頼されたルート証明機関\証明書」に多くの証明書があります。それらはすべてサーバー側でも信頼されています。

クライアント側またはサーバー側のどこに問題があるのでしょうか?? クライアント側で使用する非常に正確な証明書を 1 つ指定する必要があるのではないでしょうか??

助けていただければ幸いです。

4

1 に答える 1

3

とにかく、「この Web サイトのセキュリティ証明書に問題があります」という警告ページが表示され、[この Web サイトに進む] をクリックすることに注意してください。

クライアント マシンは、サーバーで使用している SSL 証明書を信頼していません。受け取る WCF エラーは、ブラウザーでサービスにアクセスしようとしたときに表示されるメッセージと同じです。

クライアント側では、「信頼されたルート証明機関\証明書」に多くの証明書があります。それらはすべてサーバー側でも信頼されています。

SSL 証明書を適切に信頼するようにクライアント マシンを構成する必要があります。ブラウザーでエラーなしでサービスにアクセスできるようになると、クライアント コードが機能するはずです。

于 2012-07-19T19:48:01.350 に答える