我正在使用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吗?
提前致谢
答案 0 :(得分:6)
使用私钥对CSR进行签名,以防止在传输到CA时被篡改。因此,您需要私钥来创建一个。
可以创建一个没有签名的CSR,但这种结构并不常见,而openssl二进制本身也没有创建它们的条款。
使用您首先列出的openssl命令生成新的CSR +密钥对时,它不会加密CSR(因为这不是一个理想的行为.ASSO是您提交的公共数据,而不是秘密信息),而是私有键。