pvk2pfx не позволяет мне создать файл pfx с пустым паролем закрытого ключа

Мы создали запрос сертификата и закрытый ключ с помощью openssl следующим образом.

req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

Мы отправили CSR и после проверки получили файл spc. Теперь я хочу подписать свой код с помощью signtool. По-видимому, мне нужно сгенерировать файл pfx, объединяющий spc и закрытый ключ, поэтому я вызываю

pvk2pfx.exe -pvk file.pvk -spc file.spc -pfx cert.pfx

Эта программа запрашивает пароль, но мы никогда не устанавливаем пароль на закрытый ключ. Мы просто нажали ввод. Если мы попытаемся нажать Enter в диалоговом окне, мы получим

ERROR: Password incorrect.
(Error Code = 0x80070056)

Если мы попробуем любой другой текст, мы получим

ERROR: Bad file format.
(Error Code = 0x8007000b)

Я также пытался использовать signtool и мастер, который, по-видимому, принимает разделение spc и pvk. Когда я указываю закрытый ключ (с диска, CSP: надежный криптографический провайдер Microsoft, тип провайдера RSA Full), я получаю

The signing certificate and private key do not match 
or do not contain valid information.

Любое предложение?


person Stefano Borini    schedule 25.09.2014    source источник


Ответы (2)


Проблема в том, что, по-видимому, .key, который вы получаете от openssl, и .pkv, который требуют signtool и pkv2pfx, — это не одно и то же. Вы должны преобразовать .key из вывода openssl, используя этот pvk полезность. Он прост в использовании и генерирует файл pvk, который нужен инструментам Microsoft.

person Stefano Borini    schedule 25.09.2014
comment
Ссылка была сломана. - person zwcloud; 26.11.2019

Я столкнулся с этим вопросом, когда столкнулся с ошибкой Bad File Format при использовании pvk2pfx, и мертвая ссылка принятого ответа не позволила мне продвинуться вперед.

Итак, предполагая, что конечной целью здесь является получение pfx, независимо от конкретного инструмента, используемого для этого, я использовал OpenSSL:

  1. Загрузите установщик с https://slproweb.com/products/Win32OpenSSL.html.
  2. Установить открытый SSL
  3. Откройте командную строку Win64 Open SSL.
  4. Выполните следующую команду: E:\Path\To\Cert\> openssl pkcs12 -export -out MyOutput.pfx -inkey MyPrivateKey.pvk -in MyCertificate.cer

При этом будут использоваться файлы MyPrivateKey.pvk и MyCertificate.cer и создан файл MyOutput.pfx.

Надеюсь, это поможет другим потерянным душам.

person Veli Gebrev    schedule 22.04.2021