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

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

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

有没有办法避免这种情况,而不事先在服务器上生成证书请求,或者是否有另一个更好的工作? 如果在服务器上手动生成了请求,上述命令仍然可以正常工作,但是我仍然可以通过GUI获得使用私钥安装的证书,这意味着它也可以通过命令行进行。

你写了:
他们自动生成一个证书请求用于…
但是你问:
有没有办法解决这个问题,而不会在服务器上生成一个证书请求…

  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我的默认值是Computer Personal store。 添加“-user”将其安装到当前用户的个人存储的证书。

或者使用Import-Certificate cmdLet,用于操作系统具有足够新版本的powershell的服务器,其中cmdLet可用。
https://technet.microsoft.com/en-us/%5Clibrary/hh848630%28v=wps.630%29.aspx