从现有证书生成 CSR

信息安全 证书 openssl
2021-08-08 20:36:20

我们可以从签名证书生成用于证书签名的 CSR(证书签名请求)吗?当使用不同的权限再次签名时,它应该与原始私钥一起使用。

3个回答

用户字面意思和实际想要的内容略有不同。以下是如何获取用户要求的内容。帽尖

openssl x509 -x509toreq -in $SITENAME.crt -signkey $SITENAME.key -out $SITENAME-new.csr 

这使用所有证书元信息和现有证书中的现有密钥来创建新的 CSR。新的 CSR 必须发送给新的提供商。

注意:在很长一段时间内重复使用相同的密钥被视为有一定风险。但是,鉴于证书必须每年或每两年更新一次,而 2048 位密钥在 2030 年之前应该是安全的。这假设您的站点无论如何都没有受到损害,并且由于在过去十年的 SSL。

使用 OpenSSL,您将执行以下操作:

$ openssl req -out codesigning.csr -key private.key -new

其中 private.key 是现有的私钥。

如您所见,您不会从您的证书(公钥)生成此 CSR。此外,您不会生成“相同”的 CSR,只是一个新的 CSR 来请求新证书。

根据您的评论,如果您无权访问现有的私钥,那么您可以创建一个新的私钥和 CSR:

$ openssl req -out codesigning.csr -new -newkey rsa:2048 -nodes -keyout private.key

最终结果保持不变,您将获得 CSR 并颁发新证书。

是的,只要您拥有私钥,您就可以通过从CSR 的现有证书。

根据我的评论编辑:如果您不再拥有私钥,则无法生成 CSR。需要私钥以通过数字签名验证请求者(您)的身份;否则,使用伪造的凭据生成 CSR(然后是证书)并欺骗任何现有实体将是微不足道的。