以下是Windows驱动签名和应用程序签名的详细教程,综合权威技术文档整理:
一、Windows驱动签名流程
1. 测试签名(开发阶段)
生成测试证书:使用MakeCert工具创建自签名证书,需包含内核模式代码签名扩展
签名命令:通过SignTool对.sys文件签名,示例:
bash
Copy Code
signtool sign /fd SHA256 /f MyTestCert.pfx /p 密码 driver.sys
启用测试模式:需在BIOS中关闭安全启动,或执行bcdedit /set testsigning on
2. 正式发布签名
WHQL认证流程:
通过Windows Hardware Lab Kit (HLK)测试兼容性
提交测试日志至微软硬件开发中心仪表板,获取WHQL数字签名
EV证书要求:必须使用扩展验证代码签名证书(如DigiCert/Sectigo)提交
3. 签名验证
使用SignTool verify /v driver.sys检查签名完整性
内核模式驱动需验证交叉证书链(如Microsoft Root Authority)
二、应用程序签名教程
1. 获取证书
商业证书:从受信CA(如GlobalSign、DigiCert)购买代码签名证书
自签名证书(测试用):
powershell
Copy Code
New-SelfSignedCertificate -Type CodeSigning -Subject “CN=MyApp” -CertStoreLocation “Cert:\CurrentUser\My”
2. 签名操作
SignTool命令:
bash
Copy Code
signtool sign /f MyCert.pfx /p 密码
Visual Studio集成:在项目属性“签名”页勾选“对ClickOnce清单签名”
3. 验证与分发
验证签名:signtool verify /pa /v app.exe
需将证书安装到用户“受信任的根证书颁发机构”存储区
三、关键注意事项
驱动签名强制要求:
Windows 10 1607后所有新内核驱动必须通过WHQL认证或使用EV证书签名
时间戳服务:推荐使用http://timestamp.digicert.com确保签名长期有效
国密算法支持:国内场景需确认证书兼容SM2算法(如GDCA颁发证书)
四、官方工具下载
Windows Driver Kit (WDK)
SignTool工具
注:自签名证书仅限测试环境,正式发布需商业CA证书
                                            