是否可以批量签名CSR(例如certutil)?

我有大约100个CSR在Windows PKI上签名。 我想知道是否可以批量提交,通过批处理或PowerShell脚本发布和导出这些CSR,可能使用cert util,以及如何做到这一点。

我的search没有拿出任何东西,但我仍然认为这应该是可以做到的。 任何帮助将不胜感激。

谢谢。

我在独立的Windows 2003 CA上使用了命令行工具,但是我确定他们在新版本上的工作方式也是一样的。

提交请求

certreq.exe -config .\MyCA -submit myhost1.req 

这返回这样的东西:

 RequestId: 555 Certificate request is pending: Taken Under Submission (0) 

您可以发出请求:

 certutil.exe -resubmit 555 

并将其导出到一个文件中:

 certreq.exe -config .\MyCA -Retrieve 555 myhost1.cer 

因此,通过这个知识和100个请求文件,您可以使用PowerShell:

  • 循环遍历所有文件,并为每个文件执行三个命令
  • 您需要parsingcertreq submit命令的输出,以在后面的两个步骤中获取您需要的请求标识。

-config .\myCA是指定要使用的CA,本例中是在本地机器上使用名称“myCA”。

如果系统中已经有请求,则需要遍历所有待处理的请求,然后针对每个请求运行最后两个步骤。

我在发现这个问题的同时也做了类似的事情; 我有一堆由HP iLO设备生成的Base64格式的CSR,并希望使用我们的AD证书服务企业CA对它们进行签名。

我最终设法使用这个命令:

 certreq -config "caserver01.mydomain.com\Name of My CA" -attrib "CertificateTemplate:CNOfMyCertificateTemplate" -submit c:\myCSR.csr c:\pathToSaveCertificate.cer 

NB //

  • 您需要指定证书模板的CN而不是显示名称。 我用ADSIedit在这里find了CN:

     CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=mydomain,DC=com 
  • 域中所有企业CA的名称都可以通过运行find

     certutil -dump 
  • 我的用户帐户不需要批准使用该证书模板,因此它们会自动发出,并由certreq直接下载。 我不确定在CA上是如何build立的,或者是一个特别好的主意。 如果请求需要被批准,我相信你需要运行一个单独的“certreq -retrieve”命令来下载证书,一旦被批准。

希望这可以帮助别人!