Конвертация различных форматов сертификатов в требуемый

Центр удаленного доступа (29.04.2026) | (одним файлом) (cсылка)
Конвертация различных форматов сертификатов в требуемый
- Для корректного использования сертификатов в текущем сервисе требуется, чтобы сертификаты были в формате PEM (закодированными в Base64 кодировке), аналогично формату, использующемуся в Apache. Также необходимо, чтобы сертификаты хранились каждый в своем файле, т.е. Непосредственно сертификат домена Приватный ключ сертификата домена Сертификат(ы) центра сертификации. При этом несколько сертификатов центра сертификации (сам сертификат центра и его цепочки промежуточных сертификатов) необходимо включить в один файл, в котором они указываются последовательно, например:
      1-----BEGIN CERTIFICATE-----
      2...
      3-----END CERTIFICATE-----
      4-----BEGIN CERTIFICATE-----
      5...
      6-----END CERTIFICATE-----
      7...
Рассмотрим наиболее часто встречаемые форматы и способы конвертации каждого из них в PEM формат. Формат PEM. Это целевой формат, в который нужно сконвертировать свои сертификаты, в случае если они находятся в других форматах. Данные сертификата закодированы в Base64 формате. При открытии файлов данного типа в текстовом редакторе можно увидеть строки "BEGIN CERTIFICATE" для сертификатов, и "BEGIN RSA PRIVATE KEY" или "BEGIN PRIVATE KEY" для приватных ключей. Обычно файлы имеют раширение.pem,.crt,.cer или.key. Формат DER. Это бинарная форма PEM формата. При открытии файлов данного типа в текстовом редакторе, строки BEGIN и END отсутствуют. Обычно файлы имеют расширение.der или.cer. Конвертация из DER в PEM :
    openssl x509 -inform der -in c:\cert.der -out c:\cert.pem
Формат PKCS#7 или P7B. Данные сертификата обычно закодированы в формате Base64, и он не может содержать приватных ключей. При открытии файлов данного типа в текстовом редакторе можно увидеть строки "BEGIN PKCS7" и "END PKCS7". Обычно файлы имеют расширение.p7b или.p7c. Конвертация из P7B в PEM :
    openssl pkcs7 -print_certs -in c:\cert.p7b -out c:\cert.pem
Важно! | После вышеуказанной конвертации в выходном файле будут находится все сертификаты - как сертификат домена, так и сертификат(ы) центра. Для их использования в текущем сервисе необходимо их разделить на отдельные файлы.
В случае затруднения в разделении на отдельные файлы, возможно, будет проще сконвертировать полученный на предыдущем шаге PEM файл и имеющийся приватный ключ (в PEM формате) в PFX формат, который затем сконвертировать в PEM формат, с разделением на отдельные файлы: Конвертация из PEM в PFX :
    openssl pkcs12 -export -out c:\cert.pfx -inkey c:\cert.key.pem -in c:\cert.pem
- Где: c:\cert.pem - это выходной файл, полученный после конвертации из P7B в PEM, и содержащий как сертификат домена, так и сертификат(ы) центра сертификации c:\cert.key.pem - это приватный ключ (в PEM формате) c:\cert.pfx - это итоговый выходной PFX файл, который в дальнейшем можно конвертировать в PEM с разделением на отдельные файлы (см. пункт конвертация из PFX в PEM) Формат PKCS#12 или PFX. Данные представлены в бинарной форме. Это файл контейнер который содержит все сертификаты - сертификат(ы) центра сертификации, сертификат домена и его приватный ключ. Обычно файлы имеют расширение.pfx или.p12. Конвертация из PFX в PEM : Экспорт сертификата(ов) центра сертификации:
      openssl pkcs12 -export -out c:\cert.pfx -inkey c:\cert.key.pem -in c:\cert.pem
- Экспорт сертификата домена:
      openssl pkcs12 -in c:\cert.pfx -out c:\cert.pem -nodes -nokeys -clcerts
- Экспорт приватного ключа:
      openssl pkcs12 -in c:\cert.pfx -out c:\cert.key.pem -nodes -nocerts
Назначение, удаление или изменение пароля приватного ключа :
    openssl rsa -des3 -in c:\old_cert.key.pem -out c:\new_cert.key.pem -passin pass:old_password -passout pass:new_password
Для удаления пароля не указывайте параметр passout. В случае если исходный файл без пароля, то не указывайте параметр passin.