在 Windows Server 中通过命令行完成证书请求

在 Windows Server 中通过命令行完成证书请求

我管理着许多 Windows 服务器(主要是 2008 R2 或 2012 R2),并且必须处理大量 SSL 证书续订。当我们从供应商 Globalsign 续订时,他们会自动生成用于续订的证书请求。当我通过 IIS 中的“服务器证书”部分安装已完成的证书时,它会毫不费力地接受该证书。但是,当我尝试使用 certreq -accept "C:\certpath.cer" 安装已完成的证书时,它会返回如下错误:

证书请求处理器:找不到对象或属性。0x80092004(-2146885628 CRYPT_E_NOT_FOUND)

有没有办法解决这个问题,而无需事先在服务器上生成证书请求,或者是否有其他更好的命令?如果请求是在服务器上手动生成的,则上述命令确实有效,但事实上我仍然可以通过 GUI 使用私钥安装证书,这意味着它也应该可以通过命令行实现。

答案1

你写了:
...它们会自动生成用于的证书请求...
但你会问:
有没有什么办法可以解决这个问题而不在服务器上生成证书请求......

  1. 您是否尝试在多台服务器上安装相同的证书?
  2. 您是否在服务器上本地采取措施来启动证书请求?
  3. 或者您是否通过供应商门户网站发起请求?
  4. 您是否正在寻找一种生成本地请求的方法?
  5. 或者有一种方法可以安装他们发送给您的已完成的证书?

如果您正在寻找#3 和#5(可能是#1)...

使用CERTUTIL.EXE
https://technet.microsoft.com/en-us/library/cc732443.aspx#BKMK_addstore

CertUtil -addstore CertificateStoreName InFile
CertUtil -addstore My C:\certpath.cer
certutil -addstore -?

Certutil -addstore My 默认为计算机个人存储。添加“-user”以将证书安装到当前用户的个人存储中。

或者使用Import-CertificatecmdLet,对于具有足够新的 powershell 版本的服务器,可以使用该 cmdLet。
https://technet.microsoft.com/en-us/%5Clibrary/hh848630%28v=wps.630%29.aspx

相关内容