Как преобразовать файл открытого ключа в формате 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_NO1: 901: 0990: недопустимый код ошибки: n0: 099: 0990: 0990: недопустимый код: n0: 091: 0990: недопустимый_дисок: N0ND0: 099: N0: 0N0: 099: NEXD_N0: 099_90: NEX: N_ND: NEXD_N0: 099: N0: N0: N0: N0: N0: 0N0_099 ошибка:0D0680A8: подпрограммы кодирования asn1:ASN1_CHECK_TLEN: неправильный тег:tasn_dec.c:1337: 139901900170912: ошибка:0D07803A: подпрограммы кодирования asn1:ASN1_ITEM_EX_D2I: вложенная ошибка asn1: тип_сис_диска: = 38: код RS: tasn_dec.c: RS-38: код: tas8_: =

Мой ожидаемый результат должен быть в этом формате

----- НАЧАЛО RSA PUBLIC KEY-----
КЛЮЧЕВОЙ КОНТЕНТ
----- КОНЕЦ RSA ПУБЛИЧНЫЙ КЛЮЧ -----

Кто-нибудь пробовал то же самое?

1 ответ

Вы должны добавить -pubin для открытых ключей.

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

РЕДАКТИРОВАТЬ: для обработки PEM RSA 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
Другие вопросы по тегам