OpenSSL: как создать PFX / P12 без включения файлов CA?

#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), в нем правильно указано:

  • Выдано для:
  • Выпущено:
  • Дата истечения срока действия
  • Предполагаемые цели
  • Понятное название: