如何使用代码签名证书进行驱动签名

发布时间:2020-09-04 10:19:13

如何使用代码签名证书进行驱动签名


重要提示:一般情况下在windows 10,server 2016,2019系统中的secure boot服务都是默认处于开启状态的,从而导致只被第三方机构证书签名的windows驱动无法正常安装和加载,必须提交微软进行WHQL认证签名才能正常加载使用。DriverCoding WHQL实验室以专业的服务和技术来协助客户获取微软驱动签名,签名后的驱动既保证了安装的系统兼容性,也提升了用户体验和产品可信度。


以下说明主要针对Windows 7,8,8.1等较老的操作系统:

代码签名证书分两种,一种是普通代码签名证书,另外一种是EV代码签名证书

驱动签名分两种形式的驱动签名,一是内核模式驱动签名、二是应用模式驱动签名。

一、 内核模式驱动签名(以品牌证书为例来,假定证书文件在当前目录)

·         使用普通代码签名证书来进行内核模式驱动签名。

signtool sign /v /ac "xxx.crt" /f "xxx.pfx" /p password /t timestamp server URL "xxx.sys"

xxx.crt   交叉证书路径

xxx.pfx  普通代码证书pfx文件

xxx.sys  待签驱动路径

·         使用EV代码签名证书来进行内核驱动签名

signtool.exe sign /v /a /ac "xxx.crt" /s /n "xxx Co., Ltd." /tr timestamp server URL /td sha256 /fd sha256 "xxx.sys"

xxx.crt 交叉证书路径

xxx Co., Ltd  证书对应的公司名称

·         如果你是key,进行内核交叉签名

第一步进行sha1的内核交叉签名

signtool.exe sign /v /a /ac "xxx.crt" /s /n "xxx Co., Ltd." /t timestamp server URL "xxx.sys"

第二步进行sha256的内核交叉签名

signtool.exe sign /v  /a  /i "xxx EV Code Signing CA (SHA2)" /as /ac "xxx.crt" /s /n "xxx Co., Ltd." /tr timestamp server URL /td sha256 /fd sha256 "xxx.sys"

以保驱动签名是正确的,可以使用下面的命令来验证是否正确

signtool verify /v /kp "xxx.sys"

内核交叉证书下载地址:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/install/cross-certificates-for-kernel-mode-code-signing

二、 应用模式驱动签名(普通模式签名)

·         普通代码签名进行应用模式驱动签名

signtool sign /v /f "xxx.pfx" /p password /t timestamp server URL "xxx.exe"

·         EV代码签名证书进行应用模式驱动签名

signtool.exe sign /v /a /s /n "xxx Co., Ltd." /tr timestamp server URL /td sha256 /fd sha256 "xxx.sys"


如需购买代码签名相关证书或者微软驱动签名服务(WHQL认证)可联系我们