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

Posted

技术标签:

【中文标题】Openssl 将仅包含 RSA 私钥的 .PEM 转换为 .PKCS12【英文标题】:Openssl convert .PEM containing only RSA Private Key to .PKCS12 【发布时间】:2012-06-15 04:26:39 【问题描述】:

目前我有一个仅包含私钥的 .PEM 文件。我需要将此文件转换为 .PKCS12 文件。目前我正在尝试使用 openssl 来实现这一点,但遇到了一些问题。

我使用的 .PEM 文件格式如下:

-----BEGIN RSA PRIVATE KEY-----

Some key

-----END RSA PRIVATE KEY-----

我使用以下 Openssl 命令尝试将此 .PEM 文件转换为 .PKCS12:

openssl pkcs12 -export -inkey file.pem -out file.p12

然后控制台挂起并显示消息:

Loading 'screen' into random state -done

我做错了什么?

如有任何帮助,将不胜感激。

【问题讨论】:

到目前为止,您只接受了任何一个问题的答案,那就是您自己的答案! pkcs12 文件通常包含一个证书链以及该链的叶证书的私钥。在其最简单的形式中,它包含一个自签名证书和相关的私钥。您需要使用您的公钥创建一个证书,并且该证书必须包含您的消费应用程序所期望的字段。 【参考方案1】:

我认为您还必须提供证书,而不仅仅是私钥:

openssl pkcs12 -export -inkey privatekey.pem -in certificate.cer -out 都AsPKCS12.p12

【讨论】:

是的。根据我的经验,必须提供-in(例如.cer/.crt)和-inkey(例如.key)。【参考方案2】:

我遇到了这个问题,并通过在导出后添加-nocerts 选项来解决它。我对“冻结”原因的猜测是,openssl 可能正试图从控制台读取额外的输入。

openssl pkcs12 -export -nocerts -inkey your.private.key.pem -out your.private.key.p12

【讨论】:

@sliq..你能看看我的问题吗? ***.com/questions/41149979/…

以上是关于Openssl 将仅包含 RSA 私钥的 .PEM 转换为 .PKCS12的主要内容,如果未能解决你的问题,请参考以下文章

通过 OpenSSL (c++) 以 XML (w3c) 格式保存 RSA 公钥和私钥

RSA 私钥的 PKCS#1 和 PKCS#8 格式 [关闭]

OPENSSL中RSA私钥文件(PEM格式)解析

iOS RSA加密生成公钥私钥

生成 RSA 公钥和私钥的方法

openssl生成RSA公钥和私钥