【问题标题】:what is default cipher for PEM format in OpenSSL?OpenSSL 中 PEM 格式的默认密码是什么?
【发布时间】:2011-09-13 12:57:52
【问题描述】:

我使用 openssl 生成密钥/证书

openssl.exe req -x509 -days 1000 -newkey rsa:1024 -keyout key.pem -out cert.pem

它提示输入密码。我猜密码是用于密钥加密的。但是我没有指定任何密码。在这种情况下使用什么密码?

【问题讨论】:

    标签: openssl


    【解决方案1】:

    默认密码为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-----。但是源码说明了很多。
    • @Vladimir:很高兴知道。我猜 PEM 标头必须取决于 OpenSSL 版本。
    • @fernandohur:更新到 github 仓库。
    • 2011 年 9 月 15 日:是的。 OpenSSL 长期以来一直支持“传统”算法特定格式(BEGIN RSA PRIVATE KEY、BEGIN DSA PRIVATE KEY、BEGIN EC PRIVATE KEY),这些格式可选地使用 PEM 标头进行 PB 加密,以及具有两个选项的通用标准 PKCS#8 formst :清除(BEGIN PRIVATE KEY)并在 ASN.1(BEGIN ENCRYPTED PRIVATE KEY)内加密。用openssl asn1parse 显示后者会从 ASN.1 解码 pbe 算法和参数(盐和计数)。从 1.0.0 版本开始,通用命令 req pkcs8 pkcs12 genpkey pkey 使用 PKCS#8 而不是旧格式。
    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 2011-04-19
    相关资源
    最近更新 更多