我正在使用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吗?

提前致谢

最佳答案

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

可以创建没有签名的CSR,但是这种构造并不常见,openssl二进制文件本身也没有创建它们的准备。

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

08-18 06:28
查看更多