Конвертирование сертификатов в другой формат
Конвертировать сертификаты из одного формата в другой можно с помощью различных инструментов. OpenSSL - это один из самых популярных и мощных инструментов для работы с криптографическими данными, но кроме него можно использовать: Keytool (Java Keystore), PowerShell (Windows), GnuTLS. Ниже приведены основные форматы сертификатов и примеры конвертации между ними.
1. DER → PEM
2. PEM → DER
3. PEM → PFX (PKCS#12)
Включая сертификат, цепочку сертификатов и закрытый ключ
4. PFX (PKCS#12) → PEM
Извлечь сертификат и закрытый ключ
5. PEM → P7B (PKCS#7)
Добавить несколько сертификатов, но без ключей
6. P7B → PEM
7. Извлечь закрытый ключ из PEM
8. Извлечь только сертификат из PEM (если в файле есть и ключ и сертификат)
Проверить содержимое PEM-файла:
Проверить содержимое PFX-файла:
PKCS#12 → JKS
Основные форматы сертификатов
Формат | Расширения | Описание |
PEM | .pem, .cer, .crt, .key | Base64-кодированный текст (чаще всего используется в Linux), может включать сертификат и ключ |
DER | .der, .cer | Бинарный формат |
PKCS#7 | .p7b, .p7c, .pkipath | Содержит только цепочку сертификатов, без закрытого ключа |
PKCS#12 | .pfx, .p12 | Содержит сертификаты и закрытый ключ в одном файле. Может шифроваться паролем. |
JKS | .jks | Java KeyStore (только для Java) |
Примеры конвертации с помощью OpenSSL
Убедитесь, что у вас установлен OpenSSL, это можно сделать при помощи команды:openssl version
1. DER → PEM
openssl x509 -inform der -in certificate.der -out certificate.pem
2. PEM → DER
openssl x509 -outform der -in certificate.pem -out certificate.der
3. PEM → PFX (PKCS#12)
Включая сертификат, цепочку сертификатов и закрытый ключ
openssl pkcs12 -export -out certificate.pfx -inkey private.key -in certificate.pem -certfile chain.pem
chain.pem — необязательный файл с цепочкой доверия.4. PFX (PKCS#12) → PEM
Извлечь сертификат и закрытый ключ
openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
-nodes` — означает "без шифрования", т.е. закрытый ключ будет без пароля.5. PEM → P7B (PKCS#7)
Добавить несколько сертификатов, но без ключей
openssl crl2pkcs7 -nocrl -certfile certificate.pem -certfile intermediate.pem -out certificate.p7b
6. P7B → PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
7. Извлечь закрытый ключ из PEM
openssl rsa -in certificate.pem -out private.key
8. Извлечь только сертификат из PEM (если в файле есть и ключ и сертификат)
openssl x509 -in certificate.pem -out cert_only.pem
Проверить содержимое PEM-файла:
openssl x509 -in certificate.pem -text -noout
Проверить содержимое PFX-файла:
openssl pkcs12 -info -in certificate.pfx
2. Конвертация с помощью Keytool (Java Keystore)
JKS → PKCS#12keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.p12 -deststoretype PKCS12
PKCS#12 → JKS
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -destkeystore keystore.jks
3. Конвертация с помощью PowerShell (Windows)
Из CER в PFX$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import("C:\cert\certificate.cer")
$certBytes = $cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx, "password")
[System.IO.File]::WriteAllBytes("C:\cert\certificate.pfx", $certBytes)
4. Конвертация с помощью GnuTLS
Из PEM в DERcerttool -i --infile certificate.pem --outfile certificate.der --outder
Похожие статьи:
03 январь 2025, Пятница
Как определить какой сертификат используется для ldaps?
01 сентябрь 2024, Воскресенье
Как привязать SSL сертификат к сайту на IIS?
23 сентябрь 2024, Понедельник
Как запустить нескольких веб сайтов на одном IP и порту на веб сервере IIS
12 ноябрь 2021, Пятница
Добавить FriendlyName в свойства существующего сертификата.
05 апрель 2018, Четверг
Конвертирование сертификатов при помощи OpenSSL
Комментарии: