我尝试做的是,创建一个CSR,并使用一个受密码保护的私钥(密钥)。在OpenSSL中,我可以创建一个带有密码的私钥,如下所示:
openssl genrsa -des3 -out privkey.pem 2048
是否有某种方法可以使用我刚刚创建的密钥并使用该密钥生成CSR?如果没有,是否有某种方法可以生成CSR沿着密码保护的私钥?
v440hwme1#
这是OpenSSL req文档中的第二个示例:创建私钥,然后从中生成证书请求:
openssl genrsa -out key.pem 2048 openssl req -new -key key.pem -out req.pem
请注意,如果直接使用req执行此操作(参见第3个示例),并且不使用-nodes选项,则私钥也将被加密:
req
-nodes
openssl req -newkey rsa:2048 -keyout key.pem -out req.pem
(不管文档怎么说,它与第二个示例并不完全相同,因为它没有使用-des3,但无论如何您都会这样做。)
-des3
t0ybt7op2#
受密码保护的密钥表示私钥已加密。在这里,“密钥”指的是私钥。使用密钥时,如创建证书签名请求(CSR)时,如果密钥已加密,则系统会提示输入密码。从现有加密专用-key创建CSR。在密码提示后,根据openssl configuration file,可能会提示您指定将来证书的唯一判别名(DN)。选项-new引用CSR:
-key
-new
openssl req -key a.key -new -out a.csr
应该指出的是,从现有密钥创建CSR并不常见。密钥创建简单且成本低,并且较新的密钥可能更安全。因此,创建CSR时的常见场景是创建新的私钥。
更新适用于openssl版本3.0(大约2022年)
genrsa已过时;替换为genpkey。此外,使用AES 128进行加密比使用3DES进行加密更好,这在安全性和性能方面都是如此。要创建新的-aes-128-cbc加密密钥::
-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
2条答案
按热度按时间v440hwme1#
这是OpenSSL req文档中的第二个示例:
创建私钥,然后从中生成证书请求:
请注意,如果直接使用
req
执行此操作(参见第3个示例),并且不使用-nodes
选项,则私钥也将被加密:(不管文档怎么说,它与第二个示例并不完全相同,因为它没有使用
-des3
,但无论如何您都会这样做。)t0ybt7op2#
受密码保护的密钥表示私钥已加密。在这里,“密钥”指的是私钥。使用密钥时,如创建证书签名请求(CSR)时,如果密钥已加密,则系统会提示输入密码。
从现有加密专用
-key
创建CSR。在密码提示后,根据openssl configuration file,可能会提示您指定将来证书的唯一判别名(DN)。选项-new
引用CSR:应该指出的是,从现有密钥创建CSR并不常见。密钥创建简单且成本低,并且较新的密钥可能更安全。因此,创建CSR时的常见场景是创建新的私钥。
更新适用于openssl版本3.0(大约2022年)
genrsa已过时;替换为genpkey。此外,使用AES 128进行加密比使用3DES进行加密更好,这在安全性和性能方面都是如此。要创建新的
-aes-128-cbc
加密密钥::然后,如上所述,使用它创建新的CSR。
或者,在一个步骤中创建新的3DES加密RSA密钥+ CSR:
确认上述命令创建的内容。配置文件可能在命令中起了作用,因为并非所有选项都在命令行中使用。