我正在嘗試創建一個非常簡單的WCF客戶端應用程序,它將SOAP消息發送到第三方服務。所有的信息都必須經過數字簽名。在將代碼添加到更大的應用程序之前,它確實是一個概念驗證。C#WCF客戶端錯誤「私鑰在X.509證書中不存在」
我有一個包含證書和包含私鑰的.pem文件的.cer文件。我一直在嘗試使用.cer文件加載證書,然後發出消息。但是我收到以下錯誤「私鑰在X.509證書中不存在」。
這個問題,以及其中一個問題,就是我幾乎對WCF,數字證書,私鑰以及所有那些guff幾乎一無所知。我已經做了一些閱讀,我已經谷歌搜索,直到我臉上藍色,我沒有任何地方。
如果我打開.cert文件,則會出現一段標記爲「BEGIN ENCRYPTED PRIVATE KEY」的部分,表明私鑰包含在證書中。那麼,爲什麼我會收到一條消息說它不存在?另外,如果私鑰需要添加到證書中,我該怎麼做?
這裏基本上是我在做什麼。這不是我的實際代碼,但它包括所有相關的東西:
MyWSClient c = new MyWSClient();
c.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"pathToFile.cer");
c.SomeValidCall();
我相信這個工作原因是因爲私鑰通常不在.cer文件中。我必須使用.pfx文件來獲取過去在窗口中加載的私鑰。 – Edyn