それで、ここに私の百万ドルの質問があります。サードパーティがホストするサービスを利用したいので、セットアップのためにX509証明書を交換しました。私は彼らに私たちのものを送りました、そして私たちは彼らのものを手に入れました。自己署名証明書を証明書ストアに追加しました。ここで、soapUIを使用してサービスに接続しようとしました。接続するには、秘密鍵を使用してJKSファイルを作成し、ユーザー名、パスワード、nonce、およびTTLにWSSEヘッダーを使用する必要があります。これは問題なく機能します。
しかし、サービスと通信するためにWCF c#クライアントを作成したいのですが、構成内またはコードを介してクライアントの資格情報に証明書を追加しても機能しません。誰かがWCFを使用して送信メッセージに秘密鍵を使用する方法を教えてもらえますか?
私はこれらの両方を試しましたが、どこが間違っているのかわかりません...
proxy.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"C:\soapUI\soapUI\Agency1\certificates\myprivatekey.pfx", "Pwd");
proxy.ClientCredentials.ServiceCertificate.DefaultCertificate = new X509Certificate2(@"C:\soapUI\soapUI\Agency1\certificates\myprivatekey.pfx", "Pwd");
また、正しいwsuヘッダーとwsseヘッダーをsoapエンベロープに追加しました。WCFクライアントからSOAPUIにsoapエンベロープを取得すると、機能しますが、WCF自体からは機能しません。だから私は秘密鍵がどのように使われているかの違いをかなり確信しています。ですから、どんな考えでも役に立ちます。