#ssl #openssl #ssl-certificate #p12
#ssl #openssl #ssl-сертификат #p12
Вопрос:
У меня есть цепочка доверенных сертификатов, сертификат, выданный этой цепочкой, и файл закрытого ключа для этого сертификата.
Я хочу создать P12 / PFX для этого, чтобы я мог поместить его в качестве сертификата клиента в Windows Store:
OpenSsl Pkcs12 -export -nokeys
-certfile mytrustedCertifcates.pem^
-inkey myPrivateKey.Key^
-in myCertificate.crt^
-out myCertificate.P12
Увы, результирующий файл содержит все trustedCertificates. Если я импортирую P12 в хранилище сертификатов Windows, я импортирую всю цепочку сертификатов, хотя они уже есть в хранилище сертификатов.
Я также попробовал варианты: (из утилит командной строки OpenSSL, также в -help)
- -nocerts не выводит сертификаты.
- -clcerts выводит только сертификаты клиента.
Увы, P12 по-прежнему содержит полную цепочку сертификатов, и при импорте P12 полная цепочка импортируется снова.
Комментарии:
1. Предположительно, просто удалите
-certfile mytrustedCertificates.pem
полностью…-in
соответствует ли сертификат-inkey
, если вам не нужно ничего другого… просто не предоставлять это?2. BartonJs: Так просто! Поскольку в большинстве других команд, которые я использовал, мне приходилось включать центры сертификации. По-видимому, это не требуется для P12 / PFX
Ответ №1:
BartonJs дал ответ в комментарии (спасибо, BartonJs!):
не указывайте параметр —certfile:
OpenSsl Pkcs12 -export -nokeys
-name some friendly name
-inkey myPrivateKey.Key^
-in myCertificate.crt^
-out myCertificate.P12
- nokeys: не указывает пароль PEM
- имя: понятное имя, которое будет отображаться в столбце «понятное имя» winstore
- inkey и in являются сертификатом ввода с его закрытым ключом
- out — это имя файла, который нужно создать.
После импорта его в windstore (команда: certlm.msc), в нем правильно указано:
- Выдано для:
- Выпущено:
- Дата истечения срока действия
- Предполагаемые цели
- Понятное название: