Назад | Перейти на главную страницу

Как преобразовать файл открытого ключа формата 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: ASNc.1_TEM_PLATENO: ошибка 13: ASNc.1_TEM_PLATE1: ASNc.1_TEM_PLATE1 ошибка: 0D0680A8: подпрограммы кодирования asn1: ASN1_CHECK_TLEN: неправильный тег: tasn_dec.c: 1337: 139901900170912: ошибка: 0D07803A: подпрограммы кодирования asn1: ASN1_ITEM_EX_D2I: вложенная ошибка asnc.1: ошибка tasn_dec.1

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

----- НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ RSA -----
КЛЮЧЕВОЕ СОДЕРЖАНИЕ
----- КОНЕЦ ПУБЛИЧНОГО КЛЮЧА RSA -----

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

Вы должны добавить -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