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. Ако се опитаме да натиснем enter в диалоговия прозорец, получаваме

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

Ако опитаме друг текст, получаваме

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

Опитах също да използвам signtool и съветника, който очевидно приема spc и pvk разделени. Когато посоча частния ключ (от диск, CSP: силен криптографски доставчик на Microsoft, тип доставчик RSA пълен), получавам

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

Попаднах на този въпрос, когато се сблъсках с грешка с лош файлов формат при използване на pvk2pfx и мъртвата връзка на приетия отговор не ми позволи да напредна.

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

  1. Изтеглете инсталационната програма от https://slproweb.com/products/Win32OpenSSL.html
  2. Инсталирайте Open SSL
  3. Отворете Win64 Open SSL Command Prompt
  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