在 linux 上签名 windows 应用

工作需要折腾了一下在 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

诚然,你还可以参考这里的其他方式

文档信息
发表日期:2020-02-21