Windows-Server-2008-R2
WinHttpCertCfg 不導入證書
我需要設置一個部署腳本來導入我的服務使用的 SSL 證書。我嘗試使用 WinHttpCertCfg 和 CertMgr 導入無濟於事。
以下是我嘗試使用的命令行參數:
winhttpcertcfg.exe -i <certname>.pfx -c LOCAL_MACHINE\My -p <password> -a <user service runs as>
和
CertMgr.exe -add -all -s -r localMachine -c <cert name> My
從我的調查來看,CertMgr 似乎不允許您使用密碼導入證書,所以我寧願讓 winhttpcertcfg 工作。
當我執行它們時,我得到以下輸出:WinHttpCertCfg:
Microsoft (R) WinHTTP Certificate Configuration Tool Copyright (C) Microsoft Corporation 2001.
證書經理:
CertMgr Succeeded
但是,當我在 MMC 中查看本地機器證書時,嘗試從我的服務載入它們,或通過 winhttpcertcfg 將其列出,甚至查看 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY\Certificates 中的系統資料庫未找到.
我已經嘗試了以下所有方法:
- 如果我手動安裝證書(通過 CertMgr.msc 對話框)它可以工作。
- 安裝的使用者以管理員身份執行
- 安裝的使用者對證書具有完全訪問權限
- 出現錯誤時,工具會列印出錯誤(密碼錯誤)
- 在多台機器上嘗試過(所有這些機器都是伺服器 2008 R2)
在這一點上,我正式沒有想法。
謝謝你。
我找到了答案:
事實證明,winhttpcertcfg 用於安裝證書和 Win 2008 的庫後端存在問題。還有一種替代方法,即使用 Powershell 安裝證書。您可以編寫一個腳本來使用 x509Certificate2 .NET 類並將證書導入您想要的任何儲存。此方法還使您可以更靈活地進行所需的任何額外檢查。
更多細節在這裡。
總是有 CertUtil.exe:
CertUtil -p Password -ImportPFX File.pfx
有關更多選項,請查看此處:
http ://technet.microsoft.com/en-us/library/cc732443.aspx
或嘗試:
CertUtil -ImportPFX -?