工作需要折腾了一下在 linux 上签名 windows 应用。现在总结如下
生成签名必要文件
首先从 windows 生成 pfx
文件,我这里叫 authenticode.pfx (如何生成自行 google)。然后在 linux 上使用 openssl 生成 pem
文件,命令如下
openssl pkcs12 -in authenticode.pfx -nocerts -nodes -out key.pem openssl pkcs12 -in authenticode.pfx -nokeys -nodes -out cert.pem
安装服务并签名
我使用的是 osslsigncode
开源项目(感谢开源),我在 centos7,macOSCatalina10.15.3 上都因 openssl 版本问题导致失败,最终在 Ubuntu16.04.6 上签署成功。openssl 需要 1.1.0 以上。
从 Github 上可以找到该服务及安装流程。安装成功后执行下列命令进行签名
osslsigncode sign -certs cert.pem -key key.pem -n "your app" -i http://www.website.com/ -t http://timestamp.verisign.com/scripts/timstamp.dll -in input.exe -out signed.exe
诚然,你还可以参考这里的其他方式