【问题标题】:signtool Dual Signing Failuresigntool 双签失败
【发布时间】:2016-05-16 21:36:49
【问题描述】:

关于我在尝试使用 SHA1/SHA256 进行双重签名时遇到的失败问题。

我已经拥有 SHA256 代码签名证书几年了,但在新的一年(2016 年)之前,我开始使用 /fd SHA256 来使哈希算法符合 Microsoft 弃用的 SHA1。

这很好用,但是签名哈希当然不能在旧操作系统上验证。我不关心 XP,但我仍然关心 Vista。

我首先使用以下方式签署 SHA1:

signtool sign /fd SHA1 /f "cert.pfx" /p "password" /t http://timestamp.verisign.com/scripts/timsetamp.dll "file"

然后我尝试我的双重签名:

signtool sign /as /fd SHA256 /f "cert.pfx" /p "password" /tr http://timestamp.globalsign.com/?signature=sha2 "file"

signtool 给了我这个:


Done Adding Additional Store
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2147024846/0x80070032)

现在我可以使用单一算法(SHA1 或 SHA256)成功签署文件,但无法添加第二个签名。我唯一的猜测是,因为我对这两种算法都使用了相同的证书,所以它不喜欢这样。我是否需要为每种算法提供不同的物理证书?

只是想知道,因为在新的一年之前,我多年来一直使用带有 SHA1 算法的 SHA256 证书,并且它在所有操作系统上都经过验证。

【问题讨论】:

  • 这里有任何更新/解决方案吗?
  • 不,我最终放弃了双重标志,因为无论如何 SHA1 将在今年年底完全被杀死,而 Vista 是一个化石。我很确定它不起作用,因为我试图为两种签名算法使用相同的证书,并且不愿意为此目的获得单独的 SHA1 证书。
  • 谢谢,我最终只是在一个干净且独立的 Windows 10 VM 上安装了 Windows 10 SDK,这个错误就消失了,双重签名对我有用。我试图在安装了 Windows 8 或 Windows 10 SDK 的 Windows 7 上进行双重登录,但我无法开始工作。
  • 为什么你在第一个标志中使用来自verisign的时间服务器,在第二个标志中使用来自globalsign的时间服务器?

标签: sha1 sha256 signtool


【解决方案1】:

这是来自不匹配的 dll。 signtool.exe 需要正确的 wintrust.dll 和 mssign32.dll 否则我只有在双重签名时才会得到 0x80070032。 这个网站有 8.1 的下载,所以你不需要整个 SDK http://ksoftware.freshdesk.com/support/solutions/articles/17170-how-do-i-use-ksign-to-digitally-sign-files- signtool 8.1 位于 http://cdn1.ksoftware.net/signtool_8.1.zip

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2012-06-24
    • 2022-11-04
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多