【问题标题】:SignerSign() failed. (-2146869243/0x80096005)SignerSign() 失败。 (-2146869243/0x80096005)
【发布时间】:2023-03-19 09:06:01
【问题描述】:

几个月来,我一直在为已编译的应用程序签名,并拥有一个调用 Windows 10 SDK 签名工具的脚本。它在两台不同的计算机上运行良好,我的证书有效。今天,我刚开始收到上面列出的错误编号的“意外内部错误”。我尝试禁用有助于in this case 但不是我的防病毒软件。

我的应用程序是用 Delphi 编写的,但我认为这并不重要,因为 Microsoft 的 Developer Community under Visual Studio 报告了同样的问题。我一直在使用 10.0.18362.0 版本的 SDK,但在收到此错误后,发现有更新并尝试了 10.0.19041.0 版本,但得到了同样的错误。

还有其他人有这个问题吗?有什么建议吗?

【问题讨论】:

    标签: delphi code-signing signtool


    【解决方案1】:

    这里也一样。问题是 comodoca.com 时间戳服务器的消亡。

    我改用 DigiCert:

    "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\signtool.exe" sign /tr http://timestamp.digicert.com ...
    

    UPDATE 2(困惑地确定了)comodoca.com 实际上仍然可以正常工作,您只需在您的 signtool.exe 命令中添加 /td sha256 开关,如下所示:

    "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\signtool.exe" sign /tr http://timestamp.comodoca.com /td sha256 ...
    

    看来 DigiCert 无论如何都在限制他们给出的时间戳数量,所以我不得不切换回去。顺便说一句,您仍然可以使用来自任何证书颁发机构的任何数字证书,不必来自 DigiCert 即可使用他们的时间戳服务器。

    【讨论】:

    • 谢谢!这确实是问题所在!
    • 这是我刚刚发现的更多信息:需要使用 /?td=sha256 :timestamp.comodoca.com/?td=sha256 - SHA1 服务器已于 2020 年 5 月 30 日弃用(所有 SHA1 根现已过期)
    • 乔恩,你能把大卫的信息放在答案里吗?该解决方案对我有用,无需更改时间戳服务器
    • 谢谢!这也刚开始发生在我身上。那是我生命中的 4 个小时我永远不会回来,
    • 唯一需要的改变是使用参数字符串'/td sha256'作为signtool。 timestamp.comodoca.com 的任何后缀(例如之前的一些 cmets 中提到的 /?td=sha256)似乎都是不必要的。
    【解决方案2】:

    "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64\signtool.exe" 签名 /tr http://timestamp.sectigo.com/?td=sha256 /td sha256 ....

    /?td=sha256 确实有效,但建议使用他们的新域名http://timestamp.sectigo.com 并且需要添加额外的参数/td sha256

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 2016-01-22
      相关资源
      最近更新 更多