Unix

如何將 DER 格式的公鑰文件轉換為 PEM 格式

  • November 30, 2019

我需要出於某種目的使用 PEM 格式的公鑰,但沒有找到可以將 DER 格式的公鑰轉換為 PEM 格式的公鑰的命令。

我使用的命令 -

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

實際上該命令期望私鑰作為輸入。但我收到以下錯誤 -

unable to load Private Key 139901900170912:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337: 139901900170912:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error: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

我的預期輸出應該是這種格式-

—–BEGIN RSA PUBLIC KEY—–

密鑰內容

—–END RSA PUBLIC KEY—–

有沒有人嘗試過同樣的?

您應該添加-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

引用自:https://serverfault.com/questions/694432