Форматы сертификатов

Будут рассмотрены форматы файлов, в каких случаях используются и какими способами можно конвертировать один формат сертификата в другой. 

Описание форматов

PEM 

Данные сертификата закодированы в Base64 формате. Основные расширения: .pem, .crt, .cer, .key.

Так же называют файлы почты с усовершенствованной защитой. В файле может содержаться несколько цифровых сертификатов, включая цепочку сертификатов. Если в организации используется цепочка сертификатов, используйте этот формат для создания сертификатов CA.

Содержимое вида:

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

DER 

Бинарная форма сертификата PEM. Основные расширения: .der .cer.

Можно использовать для хранения только одного сертификата. Используется для извлечения самоподписанного сертификата с компьютера, на котором он был сгенерирован, на компьютер, который использует его в качестве сертификата CA.

P7B

Файлы кодируются в формате base64. Основные расширения: .p7b или .p7c. Не может содержать приватных ключей. Содержимое вида:

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

PFX (PKCS#12)

Сертификат в бинарном формате, выданный для домена, включающий в себя сертификат, цепочку сертификатов (корневые сертификаты) и приватный ключ. Имеют расширения .pfx или .p12.

Следует использовать этот формат, чтобы сертификаты на отдельный компьютер. Например, можно создать и установить сертификат и секретный ключ с помощью утилиты управления ключами. Затем можно их экспортировать в файл PKCS12 импортировать файл в другой склад ключей. Этот формат также используется, если нужно перейти от одной реализации SSL к другой.

Преобразования сертификатов

Исходник в PEM

в DER:

openssl x509 -outform der -in cert.crt -out cert.der

в P7B:

openssl crl2pkcs7 -nocrl -certfile cert.crt -out cert.p7b -certfile othercerts.pem

в PFX:

openssl pkcs12 -export -out cert.pfx -inkey cert.key -in cert.crt -certfile othercerts.pem

Исходник в DER

в PEM:

openssl x509 -inform der -in cert.der -out cert.crt

Исходник в P7B

в PEM:

openssl pkcs7 -print_certs -in cert.p7b -out cert.cer

в PFX:

openssl pkcs7 -print_certs -in cert.p7b -out certificate.ceropenssl pkcs12 -export -in cert.cer -inkey cert.key -out cert.pfx -certfile othercerts.pem

Исходник в PFX

в PEM:

openssl pkcs12 -in cert.pfx -out cert.crt -nodes