用osslsigncode软签名

时间:2013-11-18 10:51:45

标签: openssl signtool

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

我尝试谷歌并找到了一种使用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程序需要做什么转换步骤吗?

1 个答案:

答案 0 :(得分:4)

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