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

Cod*_*tor 6 unix rsa public-key

我需要出于某种目的使用 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 公钥 -----

有人尝试过同样的吗?

yae*_*shi 8

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

openssl rsa -pubin -in user_id_rsa.pub -inform DER -outform PEM -out pubkey.pem
Run Code Online (Sandbox Code Playgroud)

编辑:要处理 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
Run Code Online (Sandbox Code Playgroud)

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

ssh-keygen -f user_id_rsa.pub -e -m PEM > pubkey.pem
Run Code Online (Sandbox Code Playgroud)