Windows-Server-2008-R2

WinHttpCertCfg 不導入證書

  • June 11, 2014

我需要設置一個部署腳本來導入我的服務使用的 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 -?

引用自:https://serverfault.com/questions/390214