从证书签名请求中恢复私钥

时间:2015-06-25 21:12:23

标签: ssl openssl ssl-certificate

私钥和公钥已从钥匙串中删除。

但是,我确实有.certSigningRequest文件。

有没有办法可以从.certSigningRequest获取pem编码格式的私钥?

1 个答案:

答案 0 :(得分:3)

简而言之,没有。

.certSigningRequest是发送给您选择的证书颁发机构(CA)的内容。然后,在验证您确实拥有您正在保护的网站后,证书颁发机构将拥有,签署您的证书,生成您现在不幸丢失的签名证书。

SSL证书的目的是证明你就是你所说的人,以及其他事情。拥有CA证书可以证明您的证书,这就是为什么您不能仅使用.certSigningRequest重新生成证书的原因。

从您的CA申请新证书

许多CA会对您表示同情并允许您向他们请求新的签名证书。当然,这取决于您的CA是谁,以及您获取新证书所需的路线。

如果您的CA确实允许,您将无法使用您仍然拥有的.certSigningRequest - 如果没有随附的密钥,该文件现在无法使用。您需要生成一个新的密钥对&&证书签名请求,请求您转发给CA.

生成新的自签名证书

如果这不是一个选项,或者如果您对从CA重新获得额外信任不感兴趣,可以通过执行以下命令生成自签名证书(假设您是使用基于Debian的Linux / Apache):

openssl req -new -x509 -sha256 -days 365 -nodes -out /etc/ssl/localcerts/apache.pem -keyout /etc/ssl/localcerts/apache.key
chmod 600 /etc/ssl/localcerts/apache*

这将生成一个自签名的SSL证书,该证书有效期为1年(-days 365)。自签名证书的主要缺点是,许多浏览器会显示令人讨厌的弹出窗口,警告用户无法验证网站的身份。