将 PKCS#12 证书转换为 PEM 时输入 PEM 密码

Posted

技术标签:

【中文标题】将 PKCS#12 证书转换为 PEM 时输入 PEM 密码【英文标题】:Enter PEM pass phrase when converting PKCS#12 certificate into PEM 【发布时间】:2017-03-16 22:20:27 【问题描述】:

我正在使用 OpenSSL 将我的“me.p12”转换为 PEM。当我生成“me.p12”时,我为其设置了密码。 “me.p12”包含一个私钥和一个证书。

当我将它转换为 PEM 时,我运行命令:

openssl pkcs12 -in me.p12 -out me.pem

然后,它问我Import Password

Enter Import Password:
MAC verified OK

我输入了我设置为“me.p12”的密码,验证OK。但接下来,它问我:

Enter PEM pass phrase:

我不知道那是什么?当我生成“me.p12”时,我没有设置任何其他密码。那么,那是什么?如何解决这个问题?

【问题讨论】:

【参考方案1】:

“输入 PEM 密码”,因为 openssl 不想以明文形式输出私钥。密码用于输出加密的私钥

以下命令可用于以明文形式输出私钥。然后不询问密码。

openssl pkcs12 -nodes -in me.p12 -out me.pem

【讨论】:

事实上,-nodes 代表 No DES,这意味着 OpenSSL 不会加密输出(使用 3DES-CBC【参考方案2】:

我第一次出现这个密码时遇到了同样的情况,然后你必须安装它,然后当这个短语再次出现在终端时,你输入你之前输入的密码。

【讨论】:

【参考方案3】:

这是一个全问题,但我认为这是正确的答案:

openssl pkcs12 \
  -passin pass:'your_pass' \ # Input file or pass phrase source
  -nodes \ # Don't encrypt private keys
  -in me.p12 \ # Input filename
  -out me.pem # Output filename

通常您在编写脚本时使用它可以与它结合:

openssl genrsa \
  -passout pass:'your_pass' \ # Output file or pass phrase source
  -out ca.key \
  -des3 2048

【讨论】:

以上是关于将 PKCS#12 证书转换为 PEM 时输入 PEM 密码的主要内容,如果未能解决你的问题,请参考以下文章

SaltStack-OpenSSL-Pkcs12:如何使用saltStack转换生成的letsencrypt证书

bash 脚本中带有 PKCS#12 证书的 cURL

使用 OpenSSL 以编程方式将 .PEM 证书转换为 .PFX

P12证书导出私钥

当我尝试将其转换为 cert.pem 和 key.pem 时,我有 p12 证书。 Key.pem 为空

Openssl 将仅包含 RSA 私钥的 .PEM 转换为 .PKCS12