微软代码签名证书使用指南(SignTool)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微软代码签名证书使用指南(SignTool)相关的知识,希望对你有一定的参考价值。

本使用指南演示如何使用 WoSign微软代码签名证书 来给Windows平台代码签名,签名工具为WDK自带的签名工具软件 SignTool.exe,此签名工具软件仅支持DOS命令符方式签名。如果您希望使用图形化界面签名您的代码,则建议使用老版本的签名工具 SignCode.exe,并请参考 SignCode微软代码签名指南。

1. 获取代码签名证书:
成功在沃通申请代码签名证书后,会得到一个有密码的压缩包文件,输入证书密码后解压得到两个文件: pfx+MS、 pvk+spc,这个是证书的两种种格式,签名普通代码需要用到 pfx 格式的证书:
技术分享图片

2. 解压证书文件:
打开 pfx+MS 文件可以看到3个文件。我们要用到pfx格式的文件,如图
技术分享图片

3. 用SignTool签名工具签名(方法一):

现在,就可以使用WDK的 SignTool 签名你的文件了,点这里 下载 Signtool签名工具。请先将您的证书XXX.pfx文件放到签名signtool工具所在目录签名命令行为:

XP,Win7用户:signtool sign /v /f xxx.pfx /p 密码 /t http://timestamp.wosign.com/timestamp test.cab

Win7,Win8用户:signtool sign /v /f xxx.pfx /p 密码 /tr http://timestamp.wosign.com/rfc3161 test.cab

其中:

(1) /v:显示详细的签名结果;

(2) /f xx.pfx:加载代码签名证书。请把颁发给你的用户证书放到signtool目录下,或者指定文件路径;

(3) /p 密码:申请证书时候设置的密码;

(4) /t,/tr:为代码加上WoSign免费时间戳,确保签名后的代码永不过期;

(5) test.cab: 就是您要签名的Windows文件,如:.cab, .dll, .exe 等文件;

(6) 如果您需要批量签名: 请点击这里

请注意:签名时,一定要保证能连上互联网,否则由于无法访问时间戳服务器而失败。

签名完成后,如果显示“Successfully signed and timestamped”(成功签名与加上时间戳),如下图所示,这表明签名已经成功:
技术分享图片

用SignTool签名工具签名(方法二):

请先将您的证书XXX.pfx文件安装到windows系统中的mmc,签名命令行为:

XP,Win7用户:signtool sign /v /s my /t http://timestamp.wosign.com/timestamp test.cab

Win7,Win8用户:signtool sign /v /s my /tr http://timestamp.wosign.com/rfc3161 test.cab

其中:

(1) /v:显示详细的签名结果;

(2) /s:加载代码签名证书。请把颁发给你的用户证书安装到mmc中的用户账户中;

(3) /t,/tr:为代码加上WoSign免费时间戳,确保签名后的代码永不过期;

(4) test.cab:就是您要签名的Windows文件,如:.cab, .dll, .exe 等文件;

(5) 如果您需要批量签名:请 点击这里

请注意:签名时,一定要保证能连上互联网,否则由于无法访问时间戳服务器而失败。

签名完成后,如果显示“Successfully signed and timestamped”(成功签名与加上时间戳),如下图所示,这表明签名已经成功:
技术分享图片

您还可以使用以下命令验证签名是否完全正确:

signtool verify /v /pa test.cab

如果显示如下图一样的证书签名信息,则说明签名完全没有问题!请注意:必须要有图示正确的4级证书签名路径,第1级为:StartCom Certificate Authority;第2级为:Certification Authority of WoSign;第3级为:WoSign Class 2 Code Signing CA(单位代码签名证书是class 3); 第4级为WoSign颁发给您的公司的微软代码签名证书, 如果证书公司名称为中文,则在签名工具中显示不出来(为空),但这并不影响签名效果。
技术分享图片

经验证签名成功后可以放到网站上了。请注意:签名后的CAB文件放到网站上需要使用 object 方式。同时,请注意:不能仅签名CAB文件,CAB包中所有DLL文件都要先签名后再打包,再签名CAB文件,否则IE浏览器会显示为“未验证的发行者”而影响正常使用,甚至杀毒软件会认为是毒而被删除!

以上是关于微软代码签名证书使用指南(SignTool)的主要内容,如果未能解决你的问题,请参考以下文章

使用 .cer 文件对 .exe 进行签名(signtool.exe 要求的证书名称是啥?)

使用SignTool.exe对文件进行数字签名

Clickonce 使用过期证书发布

Signtool错误:没有找到符合Windows Store应用程序所有给定条件的证书?

ClickOnce 发布 Signtool 错误

signtool 无法使用时间戳对 SHA2 和 SHA1 进行双重签名