6

認証なしでトランスポートセキュリティを設定することは可能ですか?私はそれが欠陥であることをよく知っていますが、ATMはクライアント側に証明書をインストールできません。WSHttpBinding.SecurityModeをTransportに設定し、ClientCredentialTypeをHttpClientCredentialType.Noneに設定できるようですが、サービスを呼び出そうとすると、次の例外が発生します。

https://[MyService]へのHTTPリクエスト中にエラーが発生しました。これは、HTTPSの場合にサーバー証明書がHTTP.SYSで適切に構成されていないことが原因である可能性があります。これは、クライアントとサーバー間のセキュリティバインディングの不一致が原因である可能性もあります。

svcutilによって生成されたプロキシを使用しているため、クライアントとサーバー間のセキュリティバインディングの不一致ではないと思います。

ClientCredentialTypeをNoneに設定したのに、なぜサーバー証明書を探すのですか?

4

3 に答える 3

6

認証なしで HTTPS 通信を行うことはできますが、HTTPS 暗号化は証明書を使用するため、証明書なしで HTTPS 通信を行うことはできません。

確認すべき点がいくつかあります。

  1. ブラウザーで HTTPS 経由でサイト上の WSDL または別のリソースにアクセスできますか?
  2. その際、証明書に関する警告が表示されますか?

HTTPS 経由でサイト上の WSDL または別のリソースにアクセスできない場合は、サーバーで HTTPS が構成されていません。

証明書に関する警告が表示される場合は、クライアントが信頼する証明書がありません。ここには 3 つのオプションがあります。1つは信頼できるVerisignのような場所から有効な証明書を取得すること、もう1つはユーザーのストアの信頼できる部分に証明書をインストールすることです(これはあなたが述べたようにはできません)。最後はオフにすることですクライアントの WCF 構成での証明書の失効。

于 2008-10-13T15:08:36.823 に答える
1

あなたが設定したものは、あなたが望むものに対して正しいように見えます.

問題は、トランスポート レベルのセキュリティ (HTTPS) を確保するために必要な証明書と、認証に必要な証明書の違いに関連していると思います。

トランスポート レベルのセキュリティを実行するには、IIS サーバーが暗号化に使用する証明書を構成する必要があります。これは、通信を保護するためだけに、WCF 通信の当事者を識別するために使用されることは決してありません。(この HTTPS トランスポートに使用される証明書はサーバーの識別にも使用されますが、それは WCF ID とは関係ありません)

これは、この目的のために IIS で証明書を設定する方法を説明するブログ投稿へのリンクです。Google が提供する最高のものとは限りません。すべての重要なポイントを網羅していることが最初にわかっただけです。MSDN では、これについても詳しく説明する必要があります。

于 2008-10-10T00:30:56.017 に答える
0

セキュリティ モードがトランスポートに設定されていて、クライアント資格情報の種類が none に設定されていたにもかかわらず、あなたが説明したエラーが発生しました。

これは、Web サービス URL が Visual Studio 2010 サービス参照作成者によってhttp://www.myservice.com:80/myservice.asmxとして特定のポート 80 で作成されたことが原因でした。これをhttpに変更したとき://www.myservice.com/myservice.asmxバインドは正しく機能しました。

于 2013-04-22T12:02:13.017 に答える