SOAPメッセージをサードパーティのサービスに送信する非常に単純なWCFクライアントアプリケーションを作成しようとしています。すべてのメッセージにデジタル署名が必要です。より大きなアプリケーションにコードを追加する前に、それは本当に概念の証明です。C#WCFクライアントエラー「X.509証明書に秘密キーがありません」
証明書を含む.cerファイルと、秘密鍵を含む.pemファイルがあります。私がやっていることは、.cerファイルを使って証明書を読み込んでからメッセージを出してしまうことです。しかし、次のエラーが表示されます。「秘密鍵がX.509証明書に存在しません」
問題は、私が実際にWCF、デジタル証明書、秘密鍵、およびそれらのすべてについてほとんど何も知っていないということです。私はいくつかの読書をしました、私は顔が青くなるまで私はグーグルで、私はどこにもいませんでした。
.certファイルを開くと、秘密鍵が証明書に含まれていることを示す "BEGIN ENCRYPTED PRIVATE KEY"というセクションがあります。だから、なぜ私はそれが存在しないというメッセージを受けていますか?また、秘密鍵を証明書に追加する必要がある場合、どのようにすればいいですか?
ここでは基本的に何をしているのですか?私の実際のコードではありませんが、関連するすべてのものが含まれています:
MyWSClient c = new MyWSClient();
c.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"pathToFile.cer");
c.SomeValidCall();
私は秘密鍵が.cerファイル内に通常見つからないため、これがうまくいった理由があると思います。私は過去にWindowsに読み込まれた秘密鍵を取得するために.pfxファイルを使用しなければなりませんでした。 – Edyn