在搜索了很多并嘗試了其他人的答案后,每個解決方案 - 仍然沒有成功簡短的前言:從我的機器到自身的響應請求 - 與證書一起工作。從另一臺計算機到我的機器 - 它沒有。在我的機器上 - 我創建了 2 個證書:公鑰和私鑰,通過:makecert -r -pe -n "CN=ds.com" -b 01/01/2018 -e 01/01/2020
-sky exchange Server.cer -sv Server.pvk進而 :pvk2pfx.exe -pvk Server.pvk -spc Server.cer -pfx Server.pfx(取自這里)我已經安裝了他們都在店里在我的機器(通過MMC):我正在使用這個簡單的WCF 配置,它托管在我機器上的WAS IIS 中。當我用這個簡單的代碼調用該服務(從我的機器到它自己)時: WSHttpBinding myBinding = new WSHttpBinding(); myBinding.Security.Mode = SecurityMode.Message; myBinding.Security.Message.ClientCredentialType =MessageCredentialType.Certificate; EndpointAddress ea = new EndpointAddress("http://ds.com/Service1.svc/HelloWorldService"); var client = new HelloWorldServiceClient(myBinding, ea); client.ClientCredentials.ClientCertificate.SetCertificate( StoreLocation.CurrentUser, StoreName.Root, X509FindType.FindByThumbprint, "9394f570069e7af263ef7ca5a46a5bcab9f68659"); Console.WriteLine(client.GetMessage("Mike Liu")); Console.ReadLine(); client.Close();— 我確實得到了結果:偉大的。現在讓我們轉到另一臺計算機,我只將公鑰證書安裝到受信任的根中。但是 - 現在當我訪問我的計算機時(使用相同的代碼 ^) - 我收到以下錯誤:證書“CN=ds.com”必須有一個私鑰。該進程必須具有對私鑰的訪問權限。即使我在我的電腦上關閉了 WAS IIS 服務,我仍然在另一臺機器上看到錯誤。似乎問題只出在另一臺機器上。我已經在另一臺機器上設置了權限:C:\ProgramData\Microsoft\Crypto <--------Everyone: full control +inheritance題:我在這里錯過了什么?為什么它會在客戶端機器中尋找私鑰。它不應該有私鑰。私人應僅駐留在服務計算機中。(這是我的機器)。
1 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
- 1 回答
- 0 關注
- 267 瀏覽
添加回答
舉報
0/150
提交
取消