如何将 DER 格式的公钥文件转换为 PEM 格式

如何将 DER 格式的公钥文件转换为 PEM 格式

我出于某些目的需要使用 PEM 格式的公钥,但找不到可以将 DER 格式的公钥转换为 PEM 格式的公钥的命令。

我使用过的命令 -
openssl rsa -in user_id_rsa.pub -inform DER -outform PEM -out pubkey.pem

实际上,该命令需要私钥作为输入。但我收到以下错误 -

无法加载私钥 139901900170912:错误:0D0680A8:asn1 编码例程:ASN1_CHECK_TLEN:错误标签:tasn_dec.c:1337: 139901900170912:错误:0D08303A:asn1 编码例程:ASN1_TEMPLATE_NOEXP_D2I:嵌套 asn1 错误:tasn_dec.c:677: 139901900170912:错误:0D0680A8:asn1 编码例程:ASN1_CHECK_TLEN:错误标签:tasn_dec.c:1337: 139901900170912:错误:0D07803A:asn1 编码例程:ASN1_ITEM_EX_D2I:嵌套asn1 错误:tasn_dec.c:388:Type=RSA

我的预期输出应采用以下格式-

-----开始 RSA 公钥-----
主要内容
-----结束 RSA 公钥-----

有人尝试过同样的事情吗?

答案1

您应该添加-pubin公钥输入。

openssl rsa -pubin -in user_id_rsa.pub -inform DER -outform PEM -out pubkey.pem

编辑:要处理 PEMRSA PUBLIC KEY格式,请指定-RSAPublicKey_in -RSAPublicKey_out

openssl rsa -RSAPublicKey_in -in user_id_rsa.pub -inform DER -outform PEM -out pubkey.pem -RSAPublicKey_out

如果您想将 OpenSSH 公钥转换为 PEM RSA PUBLIC KEY,只需使用ssh-keygen

ssh-keygen -f user_id_rsa.pub -e -m PEM > pubkey.pem

相关内容