通过命令行从 Windows CA 获取证书、ca 证书和私钥(又名 .pfx 文件)的正确方法是什么?
我一直以来的做法是使用记事本创建一个请求文件,其中包含所有相关设置(exportable=true、增强密钥使用扩展、主题),然后使用 certreq(-new 标志)将该 .inf 转换为 .req,并使用 certreq 将其提交给 CA 以取回证书。然后我将添加该证书 certreq(-accept 标志),然后使用 certutil -privatekey -exportpfx 标志将其导出。
我做得对吗?
答案1
我认为您可能已经尽可能少地完成了这项工作。 您必须先拥有私钥和签名的 CSR,才能获得 PFX,并且您必须先获得签名的证书,才能获得 CA 批准您的请求。 (这可能需要也可能不需要管理员手动批准,具体取决于证书模板设置。)
但是,certreq 在生成 CSR 时会将您的私钥隐藏在您的证书存储中,这就是为什么您通常必须在生成请求的同一台计算机上完成证书请求的原因。我不禁觉得这至少在一定程度上是一些 Microsoft 程序员试图“保护我们免受自己的侵害”,因为我们不知道如何保护我们宝贵的私钥。我真的不能责怪他们。如果 certreq 没有将私钥隐藏起来,我们可能会看到私钥在每个 Web 服务器上的每个 Web 开发人员的桌面配置文件中徘徊。
无论如何,我离题了,但是如果您希望您的私钥比 certreq 给您的具有更大的灵活性,请使用 OpenSSL 命令行工具来生成您的私钥。(openssl genrsa -out private.key 2048
)然后,您可以使用它们做任何您想做的事情,而不必执行从证书存储中导出它们的额外步骤。