如何从密钥对的现有公钥创建证书服务请求(CSR)(假设私钥在其他地方的安全位置)?

时间:2013-01-31 02:06:20

标签: openssl

我正在使用OpenSSL。 openSSL的所有引用都集中在以下两个命令来创建CSR;一个需要你输入一个已经存在的私钥(并导出公钥???),第二个将创建一个新的密钥对。我想使用我的公钥而不是创建一个新公钥。

创建CSR和私钥:

openssl req -newkey rsa:2048 -keyout my.key -out my.csr

从现有私钥创建CSR:

openssl req -key my.key -out my.csr

对于第一个选项,我不明白为什么需要私钥作为命令中的参数。我看到很多网站都说CSR是加密的,但这似乎不是真的。如果将CSR放入CSR解码器(即http://www.sslshopper.com/csr-decoder.html),则可以对其进行解析;因此我唯一的结论是它只是编码而不是加密的。

为什么将私钥输入这些命令?如何使用私钥?如果它正在加密某些东西,它加密的是什么?

如果没有使用,有人可以告诉我如何使用密钥对的公钥创建CSR吗?

提前致谢

1 个答案:

答案 0 :(得分:6)

使用私钥对CSR进行签名,以防止在传输到CA时被篡改。因此,您需要私钥来创建一个。

可以创建一个没有签名的CSR,但这种结构并不常见,而openssl二进制本身也没有创建它们的条款。

使用您首先列出的openssl命令生成新的CSR +密钥对时,它不会加密CSR(因为这不是一个理想的行为.ASSO是您提交的公共数据,而不是秘密信息),而是私有键。