You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现多哈希算法的EXE签名并兼容含Win7、IE在内的广泛受众?

如何实现多哈希算法的EXE签名并兼容含Win7、IE在内的广泛受众?

我完全懂你现在的困扰——之前用本地证书的旧脚本,能顺顺利利给EXE签上SHA1、SHA256、SHA384多种哈希,用了好多年都没问题。结果换成USB令牌的新脚本后,EXE上就只剩SHA384了,还得兼顾Win7、老IE这些旧系统的兼容性,这确实挺闹心的。

咱们一步步来解决这个问题:

先搞清楚问题根源

USB令牌里的证书,可能默认只关联了SHA384一种哈希算法,或者signtool在调用令牌时,自动选了只支持单一哈希的证书配置,导致没法叠加多个签名。另外,有些令牌的驱动或管理工具会限制可使用的哈希算法,这也可能是原因之一。

具体解决方案

  1. 确认USB令牌证书的多哈希支持

    • 打开证书管理器(certmgr.msc),找到USB令牌里的代码签名证书,右键查看“属性”→“详细信息”,检查是否包含SHA1、SHA256、SHA384的哈希算法支持。如果没有,可能需要联系证书颁发机构更新证书配置,或者在令牌管理工具里启用这些算法。
  2. 修改新脚本的签名参数
    旧脚本是分三次独立签名,新脚本也要保持这个逻辑,但必须明确指定同一个证书来签名,避免signtool自动选择不同的证书配置。你可以用证书名称或者证书指纹来指定:

    • 用证书名称的示例脚本:
      "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe" sign /tr http://timestamp.comodoca.com /td sha1 /fd sha1 /n "你的代码签名证书名称" %1
      "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe" sign /tr http://timestamp.comodoca.com /td sha256 /fd sha256 /n "你的代码签名证书名称" %1
      "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe" sign /tr http://timestamp.comodoca.com /td sha384 /fd sha384 /n "你的代码签名证书名称" %1
      
    • 用证书指纹的示例脚本(指纹可以在证书属性的“详细信息”里找到):
      "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe" sign /tr http://timestamp.comodoca.com /td sha1 /fd sha1 /sha1 你的证书指纹字符串 %1
      "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe" sign /tr http://timestamp.comodoca.com /td sha256 /fd sha256 /sha1 你的证书指纹字符串 %1
      "C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x86\signtool.exe" sign /tr http://timestamp.comodoca.com /td sha384 /fd sha384 /sha1 你的证书指纹字符串 %1
      
  3. 调整签名顺序(重要)
    建议按SHA1 → SHA256 → SHA384的顺序签名,这样Win7这类旧系统会优先识别SHA1签名,而新系统会自动选用更安全的SHA256或SHA384,兼顾兼容性和安全性。

  4. 验证签名结果
    签名完成后,用signtool验证所有哈希是否都存在:

    signtool verify /v /all %1
    

    在输出里找“数字签名信息”部分,确认能看到SHA1、SHA256、SHA384三种签名条目。

额外兼容性提示

  • Win7系统默认对SHA256及以上的签名支持有限,需要安装对应的KB更新(比如KB3033929),但保留SHA1签名能让未更新的Win7也正常识别你的EXE。
  • 老IE对签名的识别依赖系统的哈希支持,多哈希签名能覆盖不同版本的IE和系统组合。

备注:内容来源于stack exchange,提问作者Tomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:25:32