一、准备工作
获取签名证书 需要获取适用于 Windows 的代码签名证书,推荐使用受信任的 CA(如 Comodo)颁发的 EV 证书。
安装证书
将证书导入到本地计算机证书存储中,通常存储路径为 `cert:\CurrentUser\My`(个人存储)或 `cert:\LocalMachine\My`(受信任的根证书颁发机构)。
二、签名驱动程序
使用 SignTool 命令行工具
打开命令提示符(管理员权限),使用以下命令对驱动程序进行签名:
```bash
signtool sign /v /ac "路径\到\证书.cer" /s MY /n "公司名称" /t http://timestamp.comodoca.com
```
`/v`:启用详细输出
`/ac`:指定交叉签名证书路径(如 `AddTrust_External_CA_Root.cer`)
`/s MY`:选择证书存储(个人存储)
`/n "公司名称"`:填写企业名称
`/t http://timestamp.comodoca.com`:关联时间戳服务(可选)
示例 ```bash signtool sign /v /ac "D:\AddTrust_External_CA_Root.cer" /s MY /n "MyCompany" /t http://timestamp.comodoca.com "D:\drivers\example.sys" ``` 双签名驱动程序
若需同时包含 SHA-1 和 SHA-256 签名(兼容旧系统),需分两行执行:
```bash
signtool sign /v /ac "路径\到\证书.cer" /s MY /n "公司名称" /t http://timestamp.comodoca.com "D:\drivers\example.sys"
signtool sign /v /ac "路径\到\证书.cer" /s MY /n "公司名称" /fd sha256 /tr http://timestamp.comodoca.com "D:\drivers\example.sys"
```
签名后需满足 Windows 5 级证书链要求。
三、测试签名
使用以下命令验证签名是否成功:
```bash
signtool verify /pa /v "路径\到\驱动程序.sys"
```
`/pa`:验证签名属性
`/v`:启用详细输出
若输出显示签名有效,则签名成功。
四、部署注意事项
系统设置调整
测试模式: 通过 `bcdedit` 开启测试签名(`bcdedit /set testsigning ON`),可安装未签名的驱动程序。 强制签名关闭
用户权限 签名操作需以管理员身份运行。
五、常见问题
签名失败:
检查证书有效性、权限或时间戳服务是否正常。
驱动安装失败:优先选择“警告”选项,避免直接禁止安装未签名驱动。
通过以上步骤,可规范驱动程序签名流程,确保兼容性和安全性。