如何将 PKCS#8 格式的 PEM 私钥转换为传统格式?

Posted

技术标签:

【中文标题】如何将 PKCS#8 格式的 PEM 私钥转换为传统格式?【英文标题】:How to convert PKCS#8-formatted PEM private key to the traditional format? 【发布时间】:2011-02-26 19:34:52 【问题描述】:

来自 OpenSSL 1.0 更改日志:

将 PKCS#8 设为默认写入格式 对于私钥,替换 传统格式。这种形式是标准化的,更安全的,不 包括一个隐式的 MD5 依赖项。 [史蒂夫汉森]

但是,我需要以前传统格式的私钥文件。 是否可以将 pem 文件从 PKCS#8 转换为传统格式(使用 OpenSSL.exe 应用程序)?

非常感谢!

【问题讨论】:

【参考方案1】:

以这种方式成功解决了这个问题 - 请求:

openssl req -configconfigfile.cfg -newkey rsa:2048 -keyout newkey.pem -out newreq.pem 365

然后,我将其转换为 RSA 格式:

openssl rsa -in newkey.pem -out newkey.pem

希望对某人有所帮助。

【讨论】:

如果有人希望将其从传统格式反向转换为 pkcs8 格式:openssl pkcs8 -topk8 -inform pem -in file.key -outform pem -nocrypt -out file.pem【参考方案2】:
    rsa 私钥

从 PKCS#1 转换为 PKCS#8:

openssl pkcs8 -topk8 -inform pem -in private_pkcs1.pem -outform pem -nocrypt -out private_pkcs8.pem

从 PKCS#8 转换为 PKCS#1:

openssl rsa -in private_pkcs8.pem -out private_pkcs1.pem

    rsa 公钥

从 PKCS#8 转换为 PKCS#1:

openssl rsa -pubin -in public_pkcs8.pem -RSAPublicKey_out -out public_pkcs1.pem

从 PKCS#1 转换为 PKCS#8:

openssl rsa -RSAPublicKey_in -in public_pkcs1.pem -pubout -out public_pkcs8.pem

【讨论】:

以上是关于如何将 PKCS#8 格式的 PEM 私钥转换为传统格式?的主要内容,如果未能解决你的问题,请参考以下文章

RSA公钥和私钥的生成以及PKCS#1与PKCE#8格式的转换

pkcs1与pkcs8格式RSA私钥互相转换

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

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

openssl在mac下生成pkcs8证书

openssl在mac下生成pkcs8证书