一. 说明
在浏览器上运行某些带控件的网站时,会跳出安全警告,杀毒软件也会误报病毒,这是由于未签名代码缘故,导致浏览器无法验证该ActiveX控件。因此代码签名尤为重要,既能保证软件代码在网络传输过程中不会被非法修改,同时也能让用户非常清楚地识别软件发行者的真实身份(软件真实来源)。
软件代码数字签名仍然采用 PKI 双钥技术,简言之,软件发布时用私钥加密软件,在用户端通过公钥解密软件,校验软件一致性。
二. 签名
2.1 不安装证书,可指定证书签名程序
signtool sign /v /f xxx.pfx /p xxx /tr http://timestamp.wosign.com/rfc3161 test.cab
/f 指定数字证书,*.pfx
/p 申请证书时设置的密码
/tr 指定时间戳
2.2 安装数字证书
安装数字证书(*.pfx)到个人存储区,由系统自动选择证书。
signtool sign /v /s my /tr http://timestamp.wosign.com/rfc3161 test.cab
注:test.cab 打包前的所有文件都需要签名。
/s my 当前mmc控制器中个人证书,可通过certmgr -- 个人 -- 证书查看安装的证书。
如果未正常安装证书,签名时会出错:
SignTool Error: No certificates were found that met all the given criteria.
2.3 批量签名,通配符匹配多个程序
signtool sign /v /s my /tr http://timestamp.wosign.com/rfc3161 *.dll