Самыми распространенными форматами сертификатов DER и PEM
DER - бинарный формат сертификатов и ключей.
Вообще, сертификаты генерируются в этом формате.
Посмотреть содержимое DER
openssl x509 -inform der -in root_ca.der -text -noout
Преобразование сертификата DER в PEM
openssl x509 -inform der -in root_ca.der.crt -out root_ca.crt.pem
Преобразование ключа DER в PEM
openssl rsa -inform der -in root_ca.der.key -out root_ca.key.pem
PEM - кодированный base64 формат DER и с обязательными строками.
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Файл может содержать один или несколько сертификатов(цепочка) и ключей.
PEM = base65(DER)
Посмотреть содержимое PEM
openssl x509 -in root_ca.der -text -noout
Преобразование сертификата PEM в DER сертификат
openssl x509 -in root_ca.pem -out root_ca.der -outform der
Преобразование ключа PEM в DER
openssl rsa -in root_ca.key -out root_ca.der -outform der
PKCS - Public-Key Cryptography Standards
PKCS#7 - контейнер для хранения публичных сертификатов, сrl, цифровых подписей.
Может быть в DER или PEM формате.
Не предназначен для хранения ключей.
Цифровая подпись .sig файл, не что иное как контейнер PKSC#7
Расширение может быть .p7b или .p7c
Преобразование PEM to P7B
openssl crl2pkcs7 -nocrl -certfile cert.pem -out cert.p7b -certfile root_ca.crt.pem
-nocrl - нет crl-certfile - указать для каждого сертификатаConvert PKCS7 to PEM
openssl pkcs7 -print_certs -in cert.p7b -out certs.pem
Или так, если контейнер в DER формате
openssl pkcs7 -print_certs -inform DER -in cert.p7b -out certs.pem
PKCS#12 - (он же PFX) бинарный контейнер в котором могут храниться и сертификаты(цепочки сертификатов) и ключи
Расширение может быть .pfx или .p12, .pkcs12
Вывести все сертификаты и ключ
openssl pkcs12 -in cert.p12 -out certs.pem -nodes
-nodes - не нужно шифроватьТолько сертификат и ключ
openssl pkcs12 -in cert.p12 -clcerts -out certs.pem -nodes
Только CA
openssl pkcs12 -in cert.p12 -cacerts -out cacert.pem -nodes -nokeys
Только ключ
openssl pkcs12 -in cert.p12 -out key.pem -nodes -nocerts
Ссылки:
https://en.wikipedia.org/wiki/PKCS
https://ru.wikipedia.org/wiki/PKCS12
https://interface31.ru/tech_it/2022/12/formaty-sertifikatov-x509-ssl-i-preobrazovaniya-mezhdu-nimi.html