Будут рассмотрены форматы файлов, в каких случаях используются и какими способами можно конвертировать один формат сертификата в другой.
Описание форматов
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