5

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

提前致谢

4

1 回答 1

6

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

可以创建没有签名的 CSR,但这种结构并不常见,并且 openssl 二进制文件本身没有创建它们的规定。

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

于 2013-01-31T02:10:32.967 回答