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