4

你能帮我弄清楚如何用证书签署我的软件。你知道signtool只能在windows机器上工作,但我需要在linux服务器上签名文件。现在系统像这样工作,文件在 linux 服务器上构建,然后它移动到 win 服务器进行签名,然后再次回到 linux。

我尝试 google 并找到了一种使用osslsigncode程序进行签名的新方法。

我现在的问题是如何将证书从 MS 转换为 osslsigncode 格式。所以现在我做这个步骤永久有两个文件:cert.crt 和 key.blob 首先我需要将它们转换为 .pfx 格式我做:

openssl rsa -inform MS/PRIVATEKEYBLOB -in key.blob -outform PEM -out key.pem
openssl rsa -in key.pem -outform PVK -pvk-strong -out key.pvk
pvk2pfx -pvk key.pvk -pi 1234 -spc cert.crt -pfx cert.pfx

然后我可以用命令签署我的软件

signtool.exe sign /v /f cert.pfx /p 1234 soft.exe

您能告诉我使用 osslsigncode 程序需要执行哪些转换步骤吗?

4

1 回答 1

8

http://development.adaptris.net/users/lchan/blog/2013/06/07/signing-windows-installers-on-linux/为我工作......向原作者致敬。

万一丢失了,相关的步骤是:

要进行签名,您基本上必须将密钥从您的密钥库 [...] 导出为 PKCS12/PFX 文件,以便您可以使用 openssl[...] 对其进行转换。

openssl pkcs12 -in authenticode.pfx -nocerts -nodes -out key.pem
openssl pkcs12 -in authenticode.pfx -nokeys -nodes -out cert.pem
openssl rsa -in key.pem -outform DER -out authenticode.key
openssl crl2pkcs7 -nocrl -certfile cert.pem -outform DER -out authenticode.spc
osslsigncode -spc authenticode.spc -key authenticode.key -t http://timestamp.verisign.com/scripts/timstamp.dll -in install.exe -out install-signed.exe
于 2014-02-11T19:59:36.573 回答