openssl - 使用 OpenSSL 将 PKCS#12 证书转换为 PEM

标签 openssl command pkcs#12

我在 Windows 7 上安装了 OpenSSL x64,这是我从 openssl-for-windows on Google Code 下载的.我正在尝试运行:

openssl pkcs12 -export -in "path.p12" -out "newfile.pem" 

但是我得到一个错误。

unable to load private key

如何使用 OpenSSL 从 PKCS#12 存储中提取 PEM 中的证书?

最佳答案

尝试:

openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys
openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes

之后你有:

  • newfile.crt.pem 中的证书
  • newfile.key.pem 中的私钥

要将证书和 key 放在没有密码的同一个文件中,请使用以下内容,因为空密码将导致 key 无法导出:

openssl pkcs12 -in path.p12 -out newfile.pem -nodes

或者,如果您想为私钥提供密码,请省略 -nodes 并输入密码:

openssl pkcs12 -in path.p12 -out newfile.pem

如果您需要直接从命令行(例如脚本)输入 PKCS#12 密码,只需添加 -passin pass:${PASSWORD}:

openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys -passin 'pass:P@s5w0rD'

关于openssl - 使用 OpenSSL 将 PKCS#12 证书转换为 PEM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59119444/

相关文章:

javascript - 在 C++ 应用程序中编译嵌入式 spidermonkey javascript 引擎

c++ - 如何使用 openSSL C++ 以 PEM 格式存储 Diffie HellMan 对象的 key

c - 我们如何将密码的哈希 sha256 转换为 EC key 私钥?

bash - 将变量设置为终端命令的结果 (Bash)

command - 在命令提示符下启动程序只会打开另一个命令提示符窗口

python - 用于通过解析器中的参数从特定模型中删除数据的 BaseCommand

ssl - 使用证书的 EJBCA Web 管理员的 HA 代理

java - BouncyCaSTLeProvider 未从 PKCS#12 文件获取私钥和​​证书链

ubuntu 安装 openssl-1.0.1a 失败

ssl - 如何将 .p12 转换为包含未加密 PKCS#1 私钥 block 的 .pem?