Я попробовал описанный ниже метод, и он сработал, хотя он НЕ дает вам SignCode.exe (который устарел и заменен на SignTool.exe)
Вы можете получить SignTool.exe , установив просто Средства разработки Windows на C ++ из установки Visual Studio (моя древняя: 2005). Подробнее об этом @ Lindersoft.com .
Как преобразовать файл PFX / P12 в формат SPC / PVK
Экспортный сертификат с закрытым ключом.
Используйте мастер экспорта со следующими параметрами:
Export Private Key (Yes)
DO NOT TICK include all certificates in the certification path if possible
TICK enable strong protection
DO NOT TICK delete private key
Условие: OpenSSL 0.9.8 или выше. OpenSSL 1.x предпочтительнее.
Примечание. Если вы работаете в Windows, вы можете скачать OpenSSL здесь. В противном случае вы можете найти скомпилированные двоичные файлы непосредственно на веб-сайте OpenSSL или обратиться к функции управления пакетами вашей операционной системы.
Закрытый ключ (PVK)
Extract your Private Key from the PFX/P12 file to PEM format.
openssl pkcs12 -in PFX_FILE -nocerts -nodes -out PEM_KEY_FILE
Note: The PFX/P12 password will be asked. This is the password you gave the file upon exporting it.
Convert PEM Private Key to PVK format.
OpenSSL 0.9.8 series:
pvk -in PEM_KEY_FILE -topvk -out PVK_FILE
OpenSSL 1.x series:
openssl rsa -in PEM_KEY_FILE -outform PVK -pvk-strong -out PVK_FILE
Note #1: In order to use pvk for OpenSSL 0.9.8 series, you must download PVK Transform.
Note #2: A PEM passphrase may be asked. This will be the password/passphrase that you will use to sign your code.
Сертификат издателя программного обеспечения (SPC)
Extract Certificate from P12/PFX file.
openssl pkcs12 -in PFX_FILE -nokeys -out CERT_PEM_FILE
Convert Certificate to SPC format.
openssl crl2pkcs7 -nocrl -certfile CERT_PEM_FILE -outform DER -out SPC_FILE
Примечание. Если вы экспортировали свой сертификат из другого браузера за пределами IE, то в CERT_PEM_FILE убедитесь, что ТОЛЬКО ваш сертификат существует, иначе подписывание кода НЕ РАБОТАЕТ!
Пример преобразования
ПВК
openssl pkcs12 -in my_pfx_file.pfx -nocerts -nodes -out rsa.pem
openssl rsa -in rsa.pem -outform PVK -pvk-strong -out mykey.pvk
SPC
openssl pkcs12 -in my_pfx_file.pfx -nokeys -nodes -out cert.pem
openssl crl2pkcs7 -nocrl -certfile cert.pem -outform DER -out cert.spc
Эта информация любезно предоставлена Komodo .