signtool是一款可便捷快速地为程序文件签署数字签名的命令行工具,自带15个时间戳,可以用于对文件进行数字签名,验证文件或时间戳文件中的签名,支持批量签名和多重签名。有需要的朋友可以下载使用。
软件功能
1、待签名文件
就是要签署数字签名的文件,一般是PE格式文件;
2、匙包文件
后缀名为pfx,可通过导出证书私钥取得;匙包文件如有密码,请填写,无密,请留空,不要键入空格等字符,否则视同密码的一部分,进而导致签名失败,或可直接勾选“使用系统证书池证书”(如果系统存在含有私钥的证书);
3、摘要算法
Windows XP等系统不能识别摘要算法为SHA2(包含但不限于SHA256、SHA384、SHA512)的主签名,建议选择SHA1;
4、追加/多重签名
建议选择与主签名不同的摘要算法进行副签名;Windows XP/7等系统默认只能识别主签名,但多重签名仍有效;Windows7在安装KB2949927后可识别多重签名;Windows8及以上操作系统默认支持显示多重签名;
5、时间戳
Windows XP等系统无法识别RFC3161规范的时间戳;追加/多重签名的时间戳需使用符合RFC3161规范的时间戳;
6、交叉证书
程序中已经有说明,请在专业人士指导下使用,否则代码签名会失败,一般用户无需例会,留空即可;驱动程序签名请选择对应的交叉证书;
7、建议在新版操作系统使用,旧版系统(如:Windows XP)不支持部分功能,程序中已将该部分禁用。
SignTool特色
1.微软的代码签名工具,signcode 尽管向导化,但是每次只能签名一个文件。多个文件签名存在重复操作的情形。而signtool GUI可以批量签名文件,完美的解决这个问题
2.因为签名需手工键入命令。较繁琐,对用户的DOS使用提出了一定的要求。第三方工具中,有几款国产软件也做得不错。但使用过后,发现这些软件普遍不支持RFC3161协议。不支持匙包文件,对存储在操作系统中的含私钥的证书而言,安全性不高。所以综合考虑以上各项优缺点,以国外软件SignGUI为样本。特此开发了signtool GUI,两款软件对比如下:
(1)补充说明,SignGUI提供了2个时间戳。
(2)有需求的用户可自行添加其它时间戳地址。
(3)signtool GUI已经收录了目前互联网上开放的免费时间戳(11家15个,包含SignGUI提供的两个)。
(4)支持文件格式。可通过选择“所有文件”为其它后缀名文件签名。
SignTool GUI使用方法
1.安装windows sdk
生成证书和签名工具都包含在里面,Visual Studio应该都有自带了,以下内容中使用的工具都可以在C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin里面找到
2.创建 X.509 证书
MSDN对Makecert.exe(证书创建工具)的介绍:
证书创建工具生成仅用于测试目的的 X.509 证书。
它创建用于数字签名的公钥和私钥对,并将其存储在证书文件中。
此工具还将密钥对与指定发行者的名称相关联,并创建一个 X.509 证书,该证书将用户指定的名称绑定到密钥对的公共部分。
使用这个命令行创建证书:
Makecert -sv abc.pvk -r -n “CN=XXX公司” abc.cer
-sv abc.pvk创建一个密钥文件,来保存私钥,创建时需要输入一个密码。
3.创建发行者证书
MSDN对Cert2spc.exe(软件发行者证书测试工具)的介绍:
发行者证书测试工具通过一个或多个 X.509 证书创建发行者证书 (SPC)。
Cert2spc.exe 仅用于测试目的。
可以从证书颁发机构(如 VeriSign 或 Thawte)获得有效的 SPC。
使用下面的命令行创建发行者证书:
Cert2spc abc.cer abc.spc
4.导出pfx证书文件
使用pvk2pfx.exe工具从pvk文件中导出pfx文件:
pvk2pfx -pvk abc.pvk -pi mypassword -spc abc.spc -pfx abc.pfx -f
把"mypassword "密码替换为第二步时输入的密码
5.对自己的软件签名
使用signtool.exe进行签名,MSDN对SignTool.exe(签名工具)的介绍:
签名工具是一个命令行工具,用于对文件进行数字签名,验证文件和时间戳文件中的签名。
如果要对abc.exe进行签名:
signtool sign /f abc.pfx /p mypassword abc.exe
把其中的密码替换为自己的密码。
6.对自己的软件加盖时间戳
可以使用WoSign提供的时间戳服务:http://timestamp.wosign.com/timestamp
signtool timestamp /t http://timestamp.wosign.com/timestamp abc.exe
如果上面的步骤都正确,那么结果就是这样的:
签名之后,自己的软件瞬间就变的专业了有木有!
更新日志
V1.6:
1、新增两张沃通、WoSign微软交叉签名证书;
2、支持多证书/密钥匙包文件。
V1.5:
1、支持批量代码签名;
2、支持文件拖曳操作;
3、程序描述、URL支持输入中文;
4、新增一时间戳服务器。
V1.4:
1、待签名文件类型新增mui、vbs格式文件;
2、内置24份微软交叉签名证书;
3、添加微软证书更新工具、交叉签名证书下载链接、页面