Подтвердить что ты не робот

Ошибки кодирования OpenSSL при преобразовании cer в pem

Я пытаюсь преобразовать файл .cer в .pem через openssl, команда:

openssl x509 -inform der -in certnew.cer -out ymcert.pem

и что ошибки, которые я получаю:

unable to load certificate
140735105180124:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1319:
140735105180124:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:381:Type=X509

Что я делаю неправильно?

4b9b3361

Ответ 1

У меня тоже была эта проблема. Просто переименовать CER в PEM было достаточно:)

Ответ 2

Чтобы расширить существующий ответ, например объясненный ssl.com, Файл .cer может быть как в кодировке der, так и в pem. Если он находится в кодировке, вам нужно выполнить преобразование, как это было сделано, но если оно уже находится в кодировке pem, конверсия не требуется, и вы получите ошибку, которую вы получили, если попытаетесь - и вы можете просто переименовать файл.

Если вы не уверены, хорошо знать, что .der является двоичным форматом, тогда как .pem является ascii one. Если вы отбросите содержимое вашего сертификата, файл .pem будет выглядеть примерно так:

-----BEGIN CERTIFICATE-----
MIIEuTCCA6G[snip lots of chars]
XmCpajQ==
-----END CERTIFICATE-----

И файл .der будет выглядеть так:

0▒▒0▒▒▒@*▒H▒▒▒▒▒0
0▒▒1
    0   UUS10U
VeriSign, Inc.10U
                 VeriSign Trust Network1:08U

Ответ 3

У меня аналогичная проблема с форматом CRT, который дает мне ошибку при преобразовании в pem. Я делаю то же самое, что и L0g0ff, и он работает. Ниже более подробная информация.

  • Я проверил детали сертификата:

    openssl x509 -in certificate.crt -noout -text

  • после изменения расширения на сертификат .crt на cert.pem Я получаю файл в ожидаемом формате:

-----BEGIN CERTIFICATE----- ........................... -----END CERTIFICATE-----