2010-04-01 183 views
1

我正在使用ASP.NET開發服務器中構建的Visual Studios在本地計算機上開發WCF服務,並且遇到了創建和使用臨時證書的問題。WCF證書問題

我創建了一個證書調用TempCA並將其添加到受信任的根證書文件夾中,並且我創建了另一個名爲SignedByCA的文件,該文件已被添加到個人文件夾中。

服務配置文件已設置爲使用SignedByCA,但是當我運行服務時出現以下錯誤。

證書'CN = SignedByCA'必須具有能夠進行密鑰交換的私鑰。該進程必須具有私鑰的訪問權限。

我已經嘗試使用WinHttpCertCfg.exe來授予其他用戶對密鑰的訪問權限,但是我已經發現WinHttpCertCfg.exe在Windows Vista中已被棄用。

有沒有人在類似的情況下有過這個問題?

回答

0

嘗試certmgr。但我想你使用makecert來生成證書,你不需要使用WinHttpCertCfg來安裝它。它應該被自動安裝。

另外,如果你正在主持在IIS服務,私有密鑰通常在

C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys 

生成您可以嘗試授予只讀MachineKeys的用戶「網絡服務」的安全性(用戶IIS6)。

+0

對不起是一種痛苦,但正如我之前所說我沒有使用IIS來運行我的服務我只是運行它時使用Visual Studio開發服務器,當你點擊調試運行 – Morgeh 2010-04-01 15:57:02

+0

我認爲它是相似的,而不是設置它爲用戶「NETWORK SERVICE」,嘗試暫時授予「EVERYONE」只讀,看看你是否可以運行調試。出於安全原因,您不會希望在生產過程中這樣做。 – K2so 2010-04-01 16:10:14

+0

我似乎正在圍繞着這個循環,不知何故,在我的系統重置後,Web服務根本無法再找到任何證書。我只是不斷得到「使用以下搜索條件找不到X.509證書:StoreName'AuthRoot',StoreLocation'CurrentUser',FindType'FindBySubjectName',FindValue'CN = SignedByTemp'。」 – Morgeh 2010-04-01 21:30:20