Рейтинг:1

Сгенерировать PFX-файл из закрытого ключа и CRT-файлов

флаг gb

Я пытаюсь создать файл PFX для своего веб-сайта, размещенного в Azure.

я сгенерировал mycsr.csr а также приватный ключ.ключ и от Entrust я получил обратно 3 файла корень.crt, Промежуточный.crt и Сертификат Сервера.crt.

Я попытался создать свой файл PFX с помощью следующей команды

  • "C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -export -out myPrivateCert.pfx -inkey PRIVATEKEY.key -in ServerCertificate.crt

Это создает файл PFX, но когда я пытаюсь загрузить его в Azure, он говорит

  • Неверный пароль или недействительный сертификат

Я знаю, что ввел правильный пароль, поэтому мне кажется, что я неправильно сгенерировал PFX.

Я новичок в SSL-сертификатах и ​​не совсем уверен в различиях между тремя файлами CRT, которые мне вернули. Любая помощь приветствуется.

РЕДАКТИРОВАТЬ

Я попытался объединить 3 файла CRT в один. цепь.pem файл таким образом, чтобы файл ServerCertificate был первым, затем промежуточным, затем корневым.

Затем я попытался создать файл PFX с помощью этой команды:

  • "C:\Program Files\OpenSSL-Win64\bin\openssl.exe" pkcs12 -in chain.pem -inkey PRIVATEKEY.key -export -out myPrivateCert.pfx

Опять же, этот файл PFX не будет загружен в Azure.

введите описание изображения здесь

флаг cn
Как насчет импорта сертификата на ванильную конечную точку Windows? Это работает?
флаг cn
Попробуйте certutil: https://serverfault.com/questions/790786/convert-crt-and-key-to-pfx/790845
Рейтинг:1
флаг gb

Я следовал инструкциям @Lacek, но это была только часть моей проблемы. Файл PFX, созданный после его шагов, все еще не был принят Azure. Вот полное решение.

  1. Объедините файлы CRT (ServerCertificate.crt, затем Intermediate.crt, затем root.crt) в один файл chain.pem.

  2. затем экспортируйте этот файл как PFX, используя openssl

    openssl.exe pkcs12 -in chain.pem -inkey PRIVATEKEY.key -export -out myPrivateCert.pfx

  3. затем импортируйте этот файл PFX в MMC (консоль управления Microsoft). Важно, чтобы при импорте вы установили флажок «Пометить этот ключ как экспортируемый...».

введите описание изображения здесь

  1. После импорта файла PFX вам нужно щелкнуть правой кнопкой мыши сертификат сервера, а затем «экспортировать ...».

введите описание изображения здесь

  1. При экспорте обязательно отметьте «Да, экспортировать закрытый ключ». Затем на следующей странице выберите опцию «PFX», затем установите флажок «Экспортировать все расширенные свойства». Дайте файлу пароль, затем сохраните файл. Файл PFX, созданный из приложения MMC, будет правильно загружен на портал Azure.

Я не экспортирую SSL-сертификаты, поэтому я не уверен, что все эти шаги необходимы, я просто знаю, что они сработали для меня.

Я также понятия не имею о различиях между файлом PFX, созданным OpenSSL, и файлом PFX, созданным MMC, но очевидно, что разница есть, и Azure предпочитает последний.

Надеюсь, это поможет кому-то другому.

флаг cn
Похоже на хороший пример OpenSSL по сравнению с использованием собственных инструментов операционной системы.
Рейтинг:0
флаг in

Ваша проблема (вероятно) заключается в том, что файл PFX не содержит всю цепочку сертификатов, поэтому, если промежуточное звено не является доверенным, ваш сертификат также не будет доверенным.

Что нужно сделать, так это скопировать все сертификаты в один файл, из "листового" в "корневой", т.е. сертификат сервера должен быть первым, потом промежуточный, потом корневой. Для этого файлы сертификатов должны быть в формате PEM (из команды в вашем сообщении кажется, что они есть). Итак, вам нужно объединить все сертификаты в один файл:

введите ServerCertificate.crt Intermediate.crt root.crt >chain.pem

затем конвертируйте полученный файл в PKCS12:

openssl.exe pkcs12 -in chain.pem -inkey PRIVATEKEY.key -export -out myPrivateCert.pfx

Таким образом, результирующий файл должен содержать все сертификаты в цепочке и связь между ними.

Stanton avatar
флаг gb
Я попытался, как вы предложили (хотя мне пришлось изменить файл PEM, так как `-----END CERTIFICATE-----` оказался в той же строке, что и `-----BEGIN CERTIFICATE---- -` и, видимо, должны быть в разных строках). Затем я сгенерировал файл PFX, используя этот chain.pem. Полученный файл PFX по-прежнему был отклонен Azure.
Andrew Henle avatar
флаг ph
@Stanton Я подозреваю, что это может сработать, если вы заменили `type ServerCertificate.crt Intermediate.crt root.crt >chain.pem` на `type Intermediate.crt root.crt >chain.pem`, оставив сам сертификат сервера вне ` файл chain.pem`.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.