我正在開發一個WCF服務,它使用SSL證書來保證傳輸安全。如何讓certmgr爲所有用戶而不是當前用戶添加pfx?
我遵循各種教程和線索提示生成和導入證書。該證書是使用下面的命令輸入:
certmgr.exe -add -all -c <filename>.pfx -s -r localMachine my
我的WCF服務運行愉快下使用控制檯模式導入的證書。當我將服務切換到作爲「網絡服務」運行的Windows服務時,問題就開始了。例外是抱怨應用程序無法訪問安裝的私鑰。
所以我用FindPrivateKey.exe,發現私鑰實際上是安裝在當前用戶的AppData文件夾:
C:\Users\<username>\AppData\Roaming\Microsoft\Crypto\RSA\S-1-5-21-3289377140-263254259-3378496556-1105\d3a0de64e6f0513692d593a77a71d3ac_15824a33-515a-493c-a33f-38a7b852e11a
它不會,即使我授予「網絡服務」用戶的訪問權工作到這個文件。
最後我不得不刪除的證書,並重新導入使用MMC,裏面放置私鑰:
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\c3ccd4300462fe2aa7cec7f747fbd075_15824a33-515a-493c-a33f-38a7b852e11a
所以我的問題是,我怎麼能得到certmgr放置C:\ ProgramData \中的私鑰,而不是當前用戶的AppData?
我結束了使用下面的命令: winhttpcertcfg.exe -i DV15Server.pfx -c LOCAL_MACHINE \我的-a系統 –