首页>技术支持>Windows内核代码签名指南

Windows内核代码签名指南

一、 安装代码签名证书环境

1.1 代码签名证书安装环境简介

1.2 网络环境要求

请确保您的电脑可以正常访问外网。

二、代码签名证书的安装

2.1 获取代码签名证书

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

Windows内核代码签名指南图示1

图1

2.2 解压证书文件

打开文件可以看到2个文件。包括交叉根和用户代码签名证书,如图2、3。(备注:如果申请时证书时选择英文证书链将会得到如图2文件,中文会得到如图3文件。)

Windows内核代码签名指南图示2

图2

Windows内核代码签名指南图示3

图3

三、内核代码签名

3.1 用SignTool签名工具签名:

现在,就可以使用WDK的 SignTool 签名你的文件了。先将您的证书XXX.pfx文件放到签名signtool工具所在目录中,其中微软的内核交叉根已经是预置在此工具目录中,案例使用英文证书签名命令为:

具体命令请参考此链接命令行:https://bbs.wosign.com/thread-3300-1-1.html

其中:

(1) /ac: 加载内核签名专用交叉根证书,MS_xs_DG.crt和MS_xs_CT.crt 以及MS_xs_DGPro.crt是微软签发给wosign的交叉根证书;

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

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

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

(5) my.sys: 就是您要签名的内核文件,当然可以是其他类型文件,如.dll,.cat, .exe文件,或者指定文件路径;

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

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

Windows内核代码签名指南图示4

3.2验证内核签名

执行以下命令验证内核签名是否正确:

signtool verify /v /kp my.sys

如果显示如下图一样的证书签名信息,则说明内核签名成功!请注意:必须要有图示正确的4级证书签名路径,第1级必须是: Microsoft Code Verification Root, 第2级为:Certification Authority of WoSign ; 第第3级为: WoSign Class 3 Code Signing CA或WoSign Class 2 Code Signing CA; 第4级为WoSign颁发给您的公司的内核代码签名证书, 如果证书公司名称为中文,则在签名工具中显示不出来(为空),但这并不影响签名效果。

Windows内核代码签名指南图示5

3.3 数字签名.CAT文件

根据inf文件产生cat文件(使用Signability 或 inf2cat : 下载inf2cat工具 , 并参考使用指南),对.cat文件进行数字签名,同上一步骤。这样,您就可以发布您已经签名的内核软件了。

四、代码签名证书的备份

请保存好收到的证书压缩包文件及密码,以防丢失。

五、代码签名证书的恢复

重复2.3操作即可。