来自certsrv的Microsoft Active Directory证书服务响应

我正尝试在从Microsoft Active Directory证书服务生成的embedded式系统上使用证书和私钥。 NDES和SCEP目前在范围之外,因此需要半手动。

我在我们的AD CA服务器上使用https:// server / certsrv上的Microsoft Web工具。 我可以在没有CSR的情况下通过并生成响应,并将证书导出到私钥中。 响应是一个页面,要求我“安装此证书”或“保存响应”。

如果我运行“安装此证书”选项,则Windows Certmgr应用程序会显示我已导入证书并拥有私钥。 这可以作为PKCS#12文件导出,可以使用或转换为PEM。 但是,如果使用“保存响应”选项并将文件存储为p7b(如在检查响应文件时由certutil所示),然后使用p7b文件导入证书,则没有可用的私钥。 这是一致的,因为我不希望PKCS#7文件存储私钥。

我的问题:

PKCS#7文件格式似乎不支持私钥,而OpenSSL似乎不支持从PKCS#7文件中提取私钥。 有没有办法使用certsrv web工具,并获得证书和私钥,而不必在Windows中“安装此证书”? 此外,跆拳道是继续,让MS安装私人钥匙,我似乎无法获得? 我查看了文件https://dakota.main.lab/certsrv/certfnsh.asp中的脚本,他们似乎使用了与“save response”输出中显示的相同的pkcs#7数据。

提前致谢。

Dinsdale

当您使用Web Enrollment生成证书请求时,私钥是使用浏览器在本地生成的。 证书签名请求被发送到CA(没有私钥),在该签名处它被签名。 该证书随后会在网页上显示给您,并附有“安装此证书”的链接。

在那个时候,你不可能把它保存为PKCS#12(忽略了你不能右键单击并select“另存为”的事实),因为它只是服务器上的一个证书。

当你“安装这个证书”时,它将被保存到你的证书存储中,此时它与私钥结合在一起。 如果你打开证书MMC,你会在那里看到这个证书,它会显示你也有私钥。 只有在这一点上,您才可以将它们导出为PKCS#12文件。

或者,您可以使用证书MMC申请一个证书,然后将其私钥作为PKCS#12导出,但是即使这样,证书也会先安装在您的计算机上(为了与其私钥build立起来)然后才能导出它。

您可以在命令行上执行类似的过程,但是您需要先安装证书,然后才能将其导出为PKCS#12。

所以,我想你的问题的答案是“不,你不能。 私钥始终是本地的,必须与从CA返回的证书结合起来,然后才能以PKCS#12的forms导出。