【发布时间】:2011-09-13 12:57:52
【问题描述】:
我使用 openssl 生成密钥/证书
openssl.exe req -x509 -days 1000 -newkey rsa:1024 -keyout key.pem -out cert.pem
它提示输入密码。我猜密码是用于密钥加密的。但是我没有指定任何密码。在这种情况下使用什么密码?
【问题讨论】:
标签: openssl
我使用 openssl 生成密钥/证书
openssl.exe req -x509 -days 1000 -newkey rsa:1024 -keyout key.pem -out cert.pem
它提示输入密码。我猜密码是用于密钥加密的。但是我没有指定任何密码。在这种情况下使用什么密码?
【问题讨论】:
标签: openssl
默认密码为DES-EDE3-CBC,即CBC模式下的三密钥三重DES EDE。你可以在源代码文件req.c中看到这一点。
cipher=EVP_des_ede3_cbc();
如果您使用的是使用选项 OPENSSL_NO_DES 编译的 OpenSSL 版本,则默认情况下该库不会加密密钥。这与传递 -nodes 参数的行为相同。
解决这个问题的更简单方法是查看您的密钥文件。它在 PEM 标头中宣布密码。
$ cat key.pem
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CAFD88DF2EF2EE81
...
【讨论】:
-----BEGIN ENCRYPTED PRIVATE KEY-----。但是源码说明了很多。
openssl asn1parse 显示后者会从 ASN.1 解码 pbe 算法和参数(盐和计数)。从 1.0.0 版本开始,通用命令 req pkcs8 pkcs12 genpkey pkey 使用 PKCS#8 而不是旧格式。