SOAP メッセージをサードパーティ サービスに送信する非常に単純な WCF クライアント アプリケーションを作成しようとしています。すべてのメッセージはデジタル署名されている必要があります。これは、より大きなアプリケーションにコードを追加する前の概念実証です。
証明書を含む .cer ファイルと、秘密鍵を含む .pem ファイルがあります。私がやろうとしているのは、.cer ファイルを使用して証明書をロードし、メッセージを送信することです。しかし、「X.509 証明書に秘密鍵が存在しません」というエラーが表示されます。
問題の 1 つである問題は、私が WCF、デジタル証明書、秘密鍵などについてほとんど何も知らないことです。私はいくつかの読書をしました、私は顔が青くなるまでグーグルで検索しましたが、どこにも行きませんでした.
.cert ファイルを開くと、証明書に秘密鍵が含まれていることを示す「BEGIN ENCRYPTED PRIVATE KEY」というラベルの付いたセクションがあります。では、存在しないというメッセージが表示されるのはなぜですか? また、秘密鍵を証明書に追加する必要がある場合、どうすればよいですか?
ここで基本的に私がやっていること。これは私の実際のコードではありませんが、関連するすべてのものが含まれています。
MyWSClient c = new MyWSClient();
c.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"pathToFile.cer");
c.SomeValidCall();