Все статьи о SSL SSL и сертификаты

Форматы SSL-сертификатов: PEM, PFX, DER -- подробное объяснение

SSL-сертификаты и закрытые ключи могут храниться в нескольких форматах файлов. Содержимое одинаковое — различается кодирование и упаковка. Основная путаница возникает из-за необходимости конкретного формата для вашего сервера.

Сравнение форматов

ФорматРасширениеКодированиеСодержитИспользуется
PEM.pem, .crt, .cer, .keyBase64 (текст)Сертификат, ключ или цепочка (по одному на файл)Nginx, Apache, большинство Linux-серверов
DER.der, .cerБинарныйОдин сертификат или ключJava, некоторые приложения Windows
PFX/PKCS#12.pfx, .p12БинарныйСертификат + ключ + цепочка в одном файлеWindows IIS, Azure, macOS Keychain

PEM — самый распространённый формат

PEM (Privacy Enhanced Mail) — это текст в кодировке base64. Его можно открыть в текстовом редакторе:

-----BEGIN CERTIFICATE-----
MIIFYjCCBEqgAwIBAgISA8ht...
(base64 encoded data)
-----END CERTIFICATE-----

PEM-файлы могут содержать сертификаты, закрытые ключи или цепочки сертификатов. Заголовок указывает, что внутри:

  • BEGIN CERTIFICATE — сертификат
  • BEGIN PRIVATE KEY — закрытый ключ (или BEGIN RSA PRIVATE KEY / BEGIN EC PRIVATE KEY)
  • BEGIN CERTIFICATE REQUEST — CSR

GetHTTPS выдаёт файлы в формате PEMprivkey.pem, cert.pem, chain.pem, fullchain.pem.

DER — бинарное кодирование

DER — это бинарная форма тех же данных, которые PEM кодирует в текст. Не читается человеком. Используется преимущественно Java-приложениями (keytool) и некоторыми компонентами Windows.

PFX/PKCS#12 — пакетный формат

PFX (Personal Information Exchange) объединяет сертификат, закрытый ключ и цепочку в один файл, защищённый паролем. Windows IIS, Azure App Service и macOS Keychain требуют этот формат.

Конвертация между форматами

Все конвертации выполняются с помощью OpenSSL:

PEM → PFX

openssl pkcs12 -export \
  -out certificate.pfx \
  -inkey privkey.pem \
  -in cert.pem \
  -certfile chain.pem

Вам будет предложено задать пароль экспорта.

PFX → PEM

# Extract certificate
openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out cert.pem

# Extract private key
openssl pkcs12 -in certificate.pfx -nocerts -nodes -out privkey.pem

# Extract chain
openssl pkcs12 -in certificate.pfx -cacerts -nokeys -out chain.pem

PEM → DER

openssl x509 -in cert.pem -outform DER -out cert.der

DER → PEM

openssl x509 -in cert.der -inform DER -outform PEM -out cert.pem

Какой формат мне нужен?

Сервер/ПлатформаФорматНеобходимые файлы
NginxPEMfullchain.pem + privkey.pem
ApachePEMcert.pem + chain.pem + privkey.pem
IIS (Windows)PFXcertificate.pfx (конвертируйте из PEM)
Azure App ServicePFXcertificate.pfx
AWS (ACM)PEMcert.pem + chain.pem + privkey.pem (вставьте в консоль)
Java (Tomcat)JKS или PFXКонвертируйте PEM → PFX → JKS с помощью keytool
Node.jsPEMЧитайте файлы напрямую в коде

Как определить формат файла

Не уверены, какой формат у файла? Проверьте:

# If it starts with "-----BEGIN" — it's PEM (base64 text)
head -1 mystery-file.pem

# If it's binary (garbled text) — it's DER or PFX
file mystery-file.cer
# Output like "data" or "certificate" = DER
# Output like "PKCS12" = PFX

# Inspect a PEM certificate
openssl x509 -in cert.pem -noout -text

# Inspect a DER certificate
openssl x509 -in cert.der -inform DER -noout -text

# Inspect a PFX file
openssl pkcs12 -in cert.pfx -info -nokeys

Путаница с расширениями файлов

РасширениеОбычно означаетНо может быть
.pemPEM (base64)Всегда PEM
.crtPEM-сертификатDER в Windows
.cerPEM-сертификатDER в Windows
.keyPEM-закрытый ключDER (редко)
.pfxПакет PKCS#12Всегда PFX
.p12Пакет PKCS#12Всегда PFX (то же самое, что .pfx)
.derDER (бинарный)Всегда DER
.jksJava KeyStoreВсегда JKS

Простое правило: Откройте файл в текстовом редакторе. Если видите -----BEGIN CERTIFICATE-----, это PEM независимо от расширения. Если видите бинарные данные, это DER или PFX.

Часто задаваемые вопросы

В чём разница между .crt, .cer и .pem?

Все они могут быть в формате PEM. Расширение — это соглашение об именовании, а не индикатор формата. .crt и .cer обычно используются для файлов сертификатов, .pem — для любых PEM-кодированных файлов. В Windows файлы .cer иногда имеют DER-кодирование — откройте в текстовом редакторе, чтобы проверить.

Почему GetHTTPS даёт мне 4 файла?

Для максимальной совместимости. GetHTTPS предоставляет: privkey.pem (закрытый ключ), cert.pem (только ваш сертификат), chain.pem (сертификат промежуточного CA), fullchain.pem (сертификат + цепочка вместе). Nginx нужен fullchain.pem; Apache нужны отдельные cert.pem + chain.pem; IIS нужен PFX (конвертируйте из PEM).

Как создать PFX для Windows/IIS?

Используйте команду OpenSSL PEM → PFX выше. Вам понадобятся privkey.pem, cert.pem и chain.pem от GetHTTPS. Полученный .pfx можно импортировать в IIS, Azure App Service или macOS Keychain.

Можно ли конвертировать из одного формата в другой без закрытого ключа?

Вы можете конвертировать сертификат между PEM и DER без закрытого ключа. Но создание PFX требует закрытый ключ (он объединяет сертификат + ключ). Если вы потеряли закрытый ключ, необходимо сгенерировать новый сертификат.

Какой формат использует Let’s Encrypt?

Let’s Encrypt (через любой ACME-клиент, включая GetHTTPS) выдаёт файлы в формате PEM. Если вам нужен другой формат для вашего сервера, конвертируйте с помощью команд OpenSSL выше.

Похожие статьи

Развёртывание 2026-05-08
Как установить SSL-сертификат на Nginx
Пошаговое руководство по установке SSL-сертификата на Nginx. Охватывает загрузку файлов, полную конфигурацию серверного блока, лучшие практики TLS, HTTP/2, HSTS, настройку редиректов, тестирование и устранение 6 распространённых ошибок.
Развёртывание 2026-05-08
Как установить SSL-сертификат на Apache
Пошаговое руководство по установке SSL-сертификата на Apache с mod_ssl. Загрузка файлов, настройка VirtualHost, лучшие практики TLS, HSTS, редирект HTTP и устранение 5 распространённых ошибок.
SSL и сертификаты 2026-05-07
Что такое CSR (запрос на подпись сертификата)?
CSR — это сообщение, отправляемое удостоверяющему центру для запроса SSL-сертификата. Узнайте, что содержит CSR, как он генерируется и почему GetHTTPS обрабатывает его автоматически.
Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат