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

Windows内核代码签名证书:https://www.wosign.com/Products/WoSign_Kernel_CodeSigning.htm
代码签名工具:https://www.wosign.com/marketing/2015_WoSign_sign_tools/

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

  1. 获取代码签名证书:

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

  1. 解压证书文件:

打开 pfx+MS 文件可以看到3个文件。我们要用到pfx格式的文件,如图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181129150600328.jpg

  1. 用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浏览器会显示为“未验证的发行者”而影响正常使用,甚至杀毒软件会认为是毒而被删除!

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
签名工具 (SignTool.exe) 签名工具是一个命令行工具,用于对文件进行数字签名,验证文件或时间戳文件中的签名。 注意 Microsoft Windows NT、Windows Me、Windows 98 或 Windows 95 中不支持签名工具。 signtool [command] [options] [file_name | ...] 参数 参数 说明 command 命令标志之一,用于指定要对文件执行的操作。 options 用于修改命令标志的选项标志之一。 file_name 要进行签名的文件的路径。 签名工具支持下列命令。 命令 说明 catdb 在目录数据库中添加或移除目录文件。 sign 对文件进行数字签名signwizard 启动签名向导。只能为文件名命令行参数指定一个文件。 timestamp 时间戳文件。 verify 验证文件的数字签名。 下列选项应用于 catdb命令。 Catdb 选项 说明 /d 指定更新默认目录数据库。如果 /d和 /g 选项都未使用,则签名工具更新系统组件和驱动程序数据库。 /g GUID 指定更新由全局唯一标识符 (GUID) 标识的目录数据库。 /r 从目录数据库中移除指定的目录。如果未指定该选项,签名工具将向目录数据库添加指定的目录。 /u 指定为添加的目录文件自动生成唯一的名称。如有必要,将重命名目录文件,以避免与现有的目录文件发生冲突。如果未指定该选项,签名工具将重写与所添加的目录同名的任何现有目录。 注意 目录数据库用于自动查找目录文件。 下列选项适用于sign命令。 Sign 选项 说明 /a 自动选择最佳的签名证书。如果未指定该选项,签名工具仅查找一个有效的签名证书。 /c CertTemplateName 指定用于对证书进行签名证书模板名(一个 Microsoft 扩展)。 /csp CSPName 指定包含私钥容器的加密服务提供程序 (CSP)。 /d Desc 指定已签名内容的说明。 /du URL 指定已签名内容的更详细说明的统一资源定位器 (URL)。 /f SignCertFile 指定文件中的签名证书。如果文件是个人信息交换 (PFX) 格式且受密码保护,则使用 /p 选项来指定密码。如果文件不包含私钥,则使用 /csp 和 /k 选项来分别指定 CSP 和私钥容器名。 /i IssuerName 指定签名证书的颁发者的名称。该值可以是整个颁发者名称的子字符串。 /k PrivKeyContainerName 指定私钥容器名。 /n SubjectName 指定签名证书的主体的名称。该值可以是整个主体名称的子字符串。 /p 密码 指定打开 PFX 文件时使用的密码。可以通过使用 /f 选项来指定 PFX 文件。 /r RootSubjectName 指定签名证书必须链接到的根证书的主体名称。该值可以是根证书的整个主题名称的子字符串。 /s StoreName 指定要在搜索证书时打开的存储区。如果未指定该选项,则打开“我的存储区”。 /sha1 哈希 指定签名证书的 SHA1 哈希。 /sm 指定使用一个计算机存储区,而不是使用用户存储区。 /t URL 指定时间戳服务器的 URL。如果该选项不存在,将不会对签名文件执行时间戳操作。如果时间戳操作失败,将生成一个警告。 /u 用法 指定签名证书中必须存在的增强型密钥用法 (EKU)。可以通过 OID 或字符串指定该用法的值。默认用法为“代码签名”(1.3.6.1.5.5.7.3.3)。 下列选项适用于 timestamp 命令。 Timestamp 选项 说明 /t URL 必选。指定时间戳服务器的 URL。要执行时间戳操作的文件必须在以前已经进行了签名。 下列选项适用于 verify 命令。 Sign 选项 说明 /a 指定可以使用所有方法来验证文件。首先,搜索目录数据库以确定是否在目录中对文件进行了签名。如果未在任何目录中对文件进行签名签名工具将尝试验证文件的嵌入签名。验证可以或不能在目录中进行签名的文件时,建议使用该选项。可以或不能签名的文件示例包括 Windows 文件或驱动程序。 /ad 使用默认的目录数据库查找目录。 /as 使用系统组件(驱动程序)目录数据库查找目录。 /ag CatDBGUID 在由 GUID 标识的目录数据库中查找目录。 /c CatFile 通过名称指定目录文件。 /o Version 通过操作系统版本验证文件。version 参数的格式为 PlatformID:VerMajor.VerMinor.BuildNumber /pa 指定使用默认的身份验证策略。如果未指定 /pa 选项,签名工具将使用 Windows 驱动程序验证策略。此选项不能与 catdb 选项一起使用。 /pg PolicyGUID 通过 GUID 指定验证策略。GUID 对应于验证策略的 ActionID。此选项不能与 catdb 选项一起使用。 /r RootSubjectName 指定签名证书必须链接到的根证书的主体名称。该值可以是根证书的整个主题名称的子字符串。 /tw 指定如果签名没有时间戳,则生成一个警告。 下列选项适用于所有签名工具命令。 全局选项 说明 /q 执行成功时不生成输出,执行失败时生成最少的输出。 /v 执行成功、执行失败或产生警告消息时生成详细输出。 备注 签名工具要求本地计算机上安装了 CAPICOM 2.0 可再发行程序。可以从 http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm 获得 CAPICOM 2.0 可再发行程序。 签名工具的 verify 命令确定签名证书是否由受信任的颁发机构颁发、是否已撤消了签名证书,以及签名证书对于特定策略是否有效(此项可选)。 执行成功时,签名工具返回退出代码 0;执行失败时,签名工具返回退出代码 1;执行完毕并给出警告时,签名证书返回退出代码 2。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值