PFX (PKCS#12) удобен для переноса: сертификат и ключ в одном зашифрованном файле. На сервере чаще нужны отдельные .crt и .key. OpenSSL решает это за две команды.
Что понадобится
- OpenSSL в PATH
- PFX-файл с сертификатом и ключом
- Пароль от PFX
Извлечь сертификат
openssl pkcs12 -in certificate2024.pfx -clcerts -nokeys -out example_com.crt
Флаг -clcerts берёт клиентский сертификат; -nokeys исключает ключ из вывода.
Извлечь приватный ключ
Два шага (если нужен отдельный расшифрованный ключ):
openssl pkcs12 -in certificate2024.pfx -nocerts -out server.key
openssl rsa -in server.key -out example_com.key
Один шаг (ключ сразу без шифрования на диске — только на доверенной машине):
openssl pkcs12 -in certificate2024.pfx -nodes -nocerts -out example_com.key
Результат
| Файл | Содержимое |
|---|---|
example_com.crt |
Сертификат (PEM) |
example_com.key |
Приватный ключ (PEM) |
Импортируйте пару в веб-сервер или балансировщик. Храните .key с минимальными правами (chmod 600), не кладите в Git.
На практике
Если nginx ругается на «key values mismatch» — в PFX мог быть промежуточный CA, а не leaf. Добавьте -clcerts при извлечении cert или проверьте цепочку через openssl pkcs12 -in file.pfx -info -noout.