2

WCFサービスでローカル環境で証明書ベースの暗号化を使用できるようにしようとしています。これにより、ライブ環境にあるときに異なるドメインのマシンと通信できるようになります。セキュリティを実装する前にサービスが完全に機能していたので、サービスに障害はないと確信しています。

makecert.exeを使用していくつかの証明書を生成しました。まず、WCFclientとWCFServerという2つを作成し、それらをmmcの現在のユーザーの信頼できるフォルダーに追加しました。ただし、エラーが発生しました。

送信メッセージのIDチェックに失敗しました。リモートエンドポイントの予想されるDNSIDは「localhost」でしたが、リモートエンドポイントはDNSクレーム「WCfServer」を提供しました。これが正当なリモートエンドポイントである場合は、チャネルプロキシを作成するときにEndpointAddressのIdentityプロパティとしてDNSID'WCfServer'を明示的に指定することで問題を修正できます。

これは、「WCFServer」という存在しないドメインに証明書を発行していたために発生したと考えました。そこで、別の証明書を作成して「localhost」のCNを指定し、それを使用するようにクライアントとサーバーの両方を構成しようとしました。今、私はこのメッセージを受け取っています:

検証手順に従って、リモート証明書が無効です。

クライアント構成でcertificateValidationMode="None"を設定したので、これは証明書の期限切れなどによるものではないと思います。他に何がこのエラーを引き起こしているのか誰かが知っていますか?クライアント側とサーバー側の両方で同じ証明書を使用しようとしているためですか?その場合、DNS IDに関する以前のエラーメッセージが表示されないように構成ファイルを設定するにはどうすればよいですか?

4

1 に答える 1

1

前のエラー メッセージは、次のクライアント エンドポイントの定義を使用して回避できます。

<endpoint  name="..." address="..." binding="..." contract="...">
  <identity>
    <dns value="WCFServer" />
  </identity>
</endpoint>

PeerTrust2 番目のエラーの場合は、検証モードを使用するだけで十分です。

于 2011-02-23T18:27:42.747 に答える