Проблема
Thawte выдал сертификат SSL123, но в сертификате нет private key. Нужно извлечь private key из файла pfx и пришить его к выданному сертификату.
Решение
Предполагается, что запрос сертификата был создан с помощью оснастки certmgr.msc.
Открываем mmc.exe добавляем оснастку Certificates (local computer). Дальше идем в Certificate Enrollment Requests (Запросы заявок на сертификат) и экспортируем файл с личными данными .pfx. При экспорте указываем, что нам нужен закрытый ключ и вводим пароль. На выходе имеем файл .pfx. В файле .pfx лежит самоподписаннный сертификат и приватный (закрытый) ключ. Мы должны извлечь из этого файла приватный ключ и склеить его с сертификатом Thawte в новый файл .pfx.
Скачиваем и ставим http://slproweb.com/download/Win64OpenSSL_Light-1_0_2c.exe Сначала преобразуем контейнер формата pfx в формат pem, но указываем, что экспортировать сертификат не надо:
c:\OpenSSL-Win64\bin>openssl pkcs12 -in request_with_key.pfx -nocerts -out key.pem WARNING: can't open config file: /usr/local/ssl/openssl.cnf Enter Import Password: MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
Утилита спросит пароль, который вводили при экспорте pfx и два раза пароль для контейнера pem.
Затем получаем из закрытого ключа открытый:
openssl rsa -in key.pem -out myserver.key
А теперь создаем новый pfx, в котором будет ключ и сертификат Thawte:
openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt
тут domain.name.pfx - это выходной файл в который попадет сертификат и ключ, domain.name.key - это файлик myserver.key, вытащенный на предыдущем этапе, domain.name.crt - это сертификат, полученный от Thawte.
Discussion