注意
大多数跨证书在 2021 年 7 月过期。 不能使用与过期的跨证书链关联的代码签名证书来为任何版本的 Windows 创建新的内核模式数字签名。
Microsoft 受信任的根程序不再支持具有内核模式签名功能的根证书。
有关策略要求,请参阅 [Windows 10 内核模式代码签名要求] (/security/trusted-root/program-requirements#f-windows-10-kernel-mode-code-signing-kmcs-requirements)。
具有内核模式代码签名功能的现有 跨签名根证书 将继续工作,直到过期。 所有链接回这些根证书的软件发布者证书、商业发布证书和商业测试证书也会对同一计划失效。
若要对驱动程序进行签名,请首先注册 Windows 硬件开发人员中心程序。
常见问题解答
Microsoft 是生产内核模式代码签名的唯一提供者吗?
如何查找受信任的交叉证书的到期时间表?
所有跨签名的受信任根证书现在都已过期。
是否有用于测试驱动程序的交叉签名证书的替代方法?
可以使用以下过程。 对于所有方法,必须启用 TESTSIGNING 启动选项 。
有关启动时测试驱动程序,请参阅 如何安装 Windows 安装和启动所需的测试签名驱动程序。
有关详细信息,请参阅 开发和测试期间对驱动程序进行签名的简介。
我的现有已签名驱动程序包受到怎样的影响?
只要在叶签名证书到期日期之前为驱动程序包加上时间戳,这些包将继续有效。
是否有办法运行生产驱动程序包而不将其公开给 Microsoft?
否,所有生产驱动程序包都必须提交给 Microsoft 并由其签名。
驱动程序包的每个新生产版本是否需要Microsoft签名?
是的,每次重新生成生产级驱动程序包时,Microsoft必须对包进行签名。
是否可以使用第三方颁发的现有证书对非驱动程序代码进行签名?
可以,这些证书将继续有效,直到它们过期为止。 使用这些证书签名的代码仅在用户模式下运行,除非它具有有效的Microsoft签名。
是否可以继续使用 EV 证书对提交给 Hardware Dev Center 的文件进行签名?
是的,扩展验证(EV)证书将继续工作,直到证书过期。 如果在颁发跨证书过期后使用 EV 证书对内核模式驱动程序进行签名,则生成的驱动程序不会加载、运行或安装。
如何知道计划的过期是否会影响签名证书?
如果跨证书链以 Microsoft Code Verification Root 结束,则签名证书将受到影响。
若要查看跨证书链,请运行 signtool verify /v /kp <mydriver.sys> 命令。 例如:
如何将Microsoft测试签名自动化,以配合组织的构建流程?
你的生成进程可以调用硬件开发人员中心 API。
有关显示使用情况的示例,请参阅 GitHub 上的 Surface 开发人员中心管理器(SDCM) 存储库。
微软是内核模式代码签名的唯一提供商吗?
是的。
当硬件开发人员中心不提供驱动程序签名时,如何让驱动程序在 Windows XP 中运行?
驱动程序仍可使用第三方颁发的代码签名证书进行签名。 但是,必须将对驱动程序进行签名的证书导入到目标计算机上的 Local Computer Trusted Publishers 证书存储中。 有关详细信息,请参阅 受信任的发布者证书存储。
不同 Windows 版本的产品签名选项有什么不同?
警告
不再接受交叉签名进行驱动程序签名。 使用交叉证书对内核模式驱动程序进行签名违反了 Microsoft 受信任的根程序 (TRP) 策略。 TRP 不再支持具有内核模式签名功能的根证书。 CA 将吊销违反 Microsoft TRP 策略的证书。
如果你的驱动程序在 Windows 7、8 或 8.1 上运行,则必须通过 Windows 硬件兼容性计划对驱动程序进行签名。 若要开始,请参阅创建新硬件提交。
从 Windows 10 开始,请使用 Windows 硬件兼容性计划(WHCP)或 证明签名。
如果对使用 WHCP 对驱动程序进行签名有挑战,请使用以下选项之一报告具体信息:
使用通过 Microsoft 合作伙伴中心仪表板 提供的 Microsoft 协作门户,并创建反馈问题。
转到 Windows 开发人员支持 ,然后选择“ 联系我们 ”选项卡。在 “技术支持 ”框中,选择“ 驱动程序开发和测试/认证”旁边的“ 提交事件”。