Требуется при помощи программы openssl преобразовать *.pfx сертификат в два файла: открытый сертификат и приватный ключ.
Примечание: если установлен GIT то openssl можно использовать и оттуда:
C:\Program Files\Git\usr\bin\openssl.exe
Внимание: при работе с сертификатом *.pfx требуется пароль для работы с ним без.
Сначала создает открытый сертификат:
openssl pkcs12 -in ./YOUR-PFX-FILE.pfx -clcerts -nokeys -out domain.crt
Далее генерируем закрытый ключ:
openssl pkcs12 -in ./YOUR-PFX-FILE.pfx -nocerts -nodes -out domain.rsa
Созданные файлы помещаем в архив под названием file.zip.
Далее передаем полученный архив на сервер при помощи утилиты scp:
scp ./file.zip login@server_IP:/var/www/file.zip # загружаем данные на сервер при помощи scp
Вносим изменения в NGINX:
server { listen 443 ssl; server_name domain.com domain.com; ssl_certificate /path/to/your/CRT_file/domain.crt; ssl_certificate_key /path/to/your/RSA_file/domain.rsa; root /mnt/coming-soon/bushbeans; index index.html; include /etc/nginx/mime.types; }
Оригинал статьи: https://blog.knoldus.com/easiest-way-to-setup-ssl-on-nginx-using-pfx-files/
Примечание: Если нужно установить «Цепочка сертификатов» добавляем дополнительные сертификаты в конец файла. Если этого не сделать будет ошибка:
nginx: [emerg] SSL_CTX_use_PrivateKey_file("key.pem") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
Суть ошибки в том, что сертификаты еще должны следовать в определённом порядке:
- первый — это тот, который дал заказчик
- второй — это промежуточный
- третий — это корневой