ssl 使用现有私钥创建CSR

ajsxfq5m  于 2022-12-29  发布在  其他
关注(0)|答案(2)|浏览(288)

我尝试做的是,创建一个CSR,并使用一个受密码保护的私钥(密钥)。
在OpenSSL中,我可以创建一个带有密码的私钥,如下所示:

openssl genrsa -des3 -out privkey.pem 2048

是否有某种方法可以使用我刚刚创建的密钥并使用该密钥生成CSR?
如果没有,是否有某种方法可以生成CSR沿着密码保护的私钥?

v440hwme

v440hwme1#

这是OpenSSL req文档中的第二个示例:
创建私钥,然后从中生成证书请求:

openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -out req.pem

请注意,如果直接使用req执行此操作(参见第3个示例),并且不使用-nodes选项,则私钥也将被加密:

openssl req -newkey rsa:2048 -keyout key.pem -out req.pem

(不管文档怎么说,它与第二个示例并不完全相同,因为它没有使用-des3,但无论如何您都会这样做。)

t0ybt7op

t0ybt7op2#

受密码保护的密钥表示私钥已加密。在这里,“密钥”指的是私钥。使用密钥时,如创建证书签名请求(CSR)时,如果密钥已加密,则系统会提示输入密码。
现有加密专用-key创建CSR。在密码提示后,根据openssl configuration file,可能会提示您指定将来证书的唯一判别名(DN)。选项-new引用CSR:

openssl req -key a.key -new -out a.csr

应该指出的是,从现有密钥创建CSR并不常见。密钥创建简单且成本低,并且较新的密钥可能更安全。因此,创建CSR时的常见场景是创建新的私钥。

更新适用于openssl版本3.0(大约2022年)

genrsa已过时;替换为genpkey。此外,使用AES 128进行加密比使用3DES进行加密更好,这在安全性和性能方面都是如此。要创建新的-aes-128-cbc加密密钥::

openssl genpkey -aes-128-cbc -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out a.key

然后,如上所述,使用它创建新的CSR。
或者,在一个步骤中创建新的3DES加密RSA密钥+ CSR:

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

确认上述命令创建的内容。配置文件可能在命令中起了作用,因为并非所有选项都在命令行中使用。

openssl rsa -in a.key -text -noout          # key bits & primes used, prompts if encrypted
    openssl asn1parse -in a.key -i -dlimit 16   # encryption cipher used
    openssl req -in a.csr -text -noout -verify  # subject, pub key & signature algorithms, V3 extensions

相关问题