как проверить, что файл сертификата у меня в формате .pem - PullRequest
42 голосов
/ 07 марта 2011

У меня есть файл rootcert, и я не знаю, находится ли он в формате .pem или нет, как мне проверить, что он в формате .pem?

Ответы [ 5 ]

52 голосов
/ 10 июля 2013

DER против CRT против CER против сертификатов PEM и как их конвертировать

Цитата со страницы поддержки:

View
====

Even though PEM encoded certificates are ASCII they are not human
readable.  Here are some commands that will let you output the
contents of a certificate in human readable form;

View PEM encoded certificate
----------------------------

Use the command that has the extension of your certificate replacing
cert.xxx with the name of your certificate

openssl x509 -in cert.pem -text -noout
openssl x509 -in cert.cer -text -noout
openssl x509 -in cert.crt -text -noout

If you get the folowing error it means that you are trying to view a DER encoded certifciate and need to use the commands in the “View DER encoded certificate 
below”

unable to load certificate
12626:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTED CERTIFICATE View DER encoded Certificate


View DER encoded Certificate
----------------------------

openssl x509 -in certificate.der -inform der -text -noout

If you get the following error it means that you are trying to view a PEM encoded certificate with a command meant for DER encoded certs. Use a command in the “View PEM encoded certificate above

unable to load certificate
13978:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306:
13978:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509
37 голосов
/ 07 марта 2011

Сертификат формата .pem, скорее всего, будет ASCII-читаемым. У него будет строка -----BEGIN CERTIFICATE-----, за которой следуют данные в кодировке base64, а затем строка -----END CERTIFICATE-----. Там могут быть другие строки до или после.

13 голосов
/ 12 декабря 2017

Ссылка CRL, CRT, CSR, NEW CSR, PRIVATE KEY, PUBLIC KEY Parser

CRL

-----BEGIN X509 CRL-----
-----END X509 CRL-----

CRT

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

CSR

-----BEGIN CERTIFICATE REQUEST-----
-----END CERTIFICATE REQUEST-----

NEW CSR

-----BEGIN NEW CERTIFICATE REQUEST-----
-----END NEW CERTIFICATE REQUEST-----

PEM

-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----

PKCS7

-----BEGIN PKCS7-----
-----END PKCS7-----

ЧАСТНЫЙ КЛЮЧ

-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
6 голосов
/ 11 августа 2016

Чтобы OpenSSL распознал его как формат PEM, он должен быть закодирован в Base64 со следующим заголовком:

-----BEGIN CERTIFICATE-----

и нижним колонтитулом:

-----END CERTIFICATE-----

Кроме того, каждая строкадолжно быть максимум 79 символов.В противном случае вы получите сообщение об ошибке:

2675996:error:0906D064:PEM routines:PEM_read_bio:bad base64 decode:pem_lib.c:818:

Примечание. Стандарт PEM (RFC1421) предусматривает строки длиной 64 символа.Сертификат PEM, хранящийся в виде одной строки, можно преобразовать с помощью утилиты командной строки UNIX

fold -w 64
0 голосов
/ 12 августа 2014

Как проверить, что файл сертификата у меня в формате .pem

cat файл и ищите предварительно инкапсулированный заголовок и посткапсулированный заголовок. Предварительно инкапсулированный заголовок - -----BEGIN CERTIFICATE----- или -----BEGIN X509 CERTIFICATE-----; и посткапсулированный заголовок - -----END CERTIFICATE----- или -----END X509 CERTIFICATE-----.

Инкапсулированные заголовки обсуждаются в RFC 1421 . В этих заголовках нет стандартного списка или полного списка объектов (например, CERTIFICATE или X509 CERTIFICATE). Большинство людей используют OpenSSL pem.h заголовок для списка типов объектов.

...