为了防止自己的安装包(exe文件或dll文件等)被杀毒软件当做病毒干掉,有时候需要对可执行文件进行自签名,让杀毒软件认为是安全的。
这边使用windows SDK自带的工具实现签名。使用visual studio命令行工具调用Windows SDK签名工具(makecert,cert2spc,signtool)。
1.使用 makecert 创建自签名的证书和公钥
makecert -r -b 01/01/2021 -e 12/30/2031 -sv root_key.pvk -n "CN=Signer,E=email@qq.com" root.cer
参数:-b 证书有效起始时间
-e 证书有效终止时间
-n CN 签名者
E 邮箱
运行后会弹出窗输入pvk文件的秘钥,用于替换步骤3,4的password
2.使用 cert2spc 生成spc发行者证书
cert2spc root.cer root.spc
3.生成PFX格式(PKCS12)的证书
pvk2pfx -pvk root_key.pvk -pi password -spc root.spc -pfx root.pfx -po password
4.signtool使用pfx格式的证书对可执行文件进行签名
signtool sign /fd SHA256 /f root.pfx /p password *.exe
5.signtool时间戳签名
signtool timestamp /td sha256 /tr "http://timestamp.comodoca.com/rfc3161" *.exe