Конвертируем rsa в pfx

openssl req -new -key private.key -out private.csr
openssl x509 -req -days 365 -in private.csr -signkey private.key -out private.crt
openssl pkcs12 -export -inkey private.key -in private.crt -out certificate.pfx

 

Конвертируем pfx в crt и key файл

Итак, есть виндовый pfx. Решили закрыть backend nginx-ом. Надо конвертить сертификат, чтобы nginx его понял. Открываем консоль и пишем

openssl pkcs12 -in [yourfile.pfx] -nocerts -out [keyfile-encrypted.key]
openssl pkcs12 -in [yourfile.pfx] -clcerts -nokeys -out [certificate.crt]
openssl rsa -in [keyfile-encrypted.key] -out [keyfile-decrypted.key]

На выходе получаем [certificate.crt] и [keyfile-decrypted.key]. Теперь можно поднимать ssl на nginx

Конвертирование сертификатов (PEM/P7B/PFX/DER)

Форматы сертификатов можно менять при помощи команд OpenSSL или посредством инструментов Конвертор SSL. Есть еще отличный online-конвертер.

Ниже указаны наиболее употребляемые комманды:

I. Конвертирование файлов PEM
PEM в DER
openssl x509 -outform der -in certificate.pem -out certificate.der
PEM в P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
PEM в PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

II. Конвертирование файлов P7B
P7B в PEM openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
P7B в PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer

III. Конвертирование файлов PFX
PFX в PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes

IV. Конвертирование файлов DER
DER в PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem

Источник: https://ssl4less.ru/faq/ehniceskie-voprosy/onvertirovanie-sertifikatov-pem-p7b-pfx-der.html