【问题标题】:Code signing problems代码签名问题
【发布时间】:2016-06-09 13:21:09
【问题描述】:

短版

我在使用 Windows 7/Signtool.exe 签署我的代码时遇到了一些问题,我正在寻求一些建议/说明如何处理以下问题:当我尝试在 Windows 7 上签署 .exe 代码文件时,使用 signtool和 /as 选项,signtool 将不起作用,它抱怨我试图使用一些不受支持的选项。不使用 /as 签名适用于 Windows 7,使用 /as 签名适用于 Windows 8.1 和 Windows 10。

  1. 在 WINdows 7 上使用 /as 进行签名的任何人都可以使用 signtool 吗?

  2. 如果文件上只有一个签名,为什么有人要使用 /as?

加长版

有人建议我对我的 .exe 文件进行签名,主要是为了消除有关未知软件来源的 Windows 警告,并且多年来一直没有考虑太多。我使用了 signtool 和客户提供的 pfx 文件,并且很好。该软件面向全球客户销售,需要在 Windows XP 及更高版本上运行。没有经验的用户可能会被软件潜在危险的警告所困扰,这就是多年前实施签名的原因。

最近 pfx 文件过期了。连同一个新的有效证书(由 Verisign/Geotrust 提供),我得到指示,新文件现在(支持?需要?强制/& 使用?) sha256,我需要使用以下命令行来签署我的代码:

"signtool.exe" sign /n "..." /d "..." /du "..." /as /fd sha256 /tr "http://timestamp.geotrust.com/tsa" "<.exe file name>"

我将新的 pfx 导入到我的证书存储中,删除了旧的(无论如何都已过期)并试了一下,但在我的开发机器(Windows 7 x64)上,这给了我来自 signtool 的错误消息:

SignTool 错误:所需的功能不存在。
此错误可能意味着您正在运行 SignTool 的操作系统
不支持您指定的选项。

我在 Windows 8.1 机器上尝试过,该命令有效。我的客户在他的 Windows 10 机器上试用过,它也能正常工作。

通过反复试验,我发现 /as 选项导致了问题,如果我省略它,我也可以在 WIndows 7 上登录。似乎该消息是正确的,但是当我阅读 Microsoft (https://msdn.microsoft.com/de-de/library/8s9b9yaz%28v=vs.110%29.aspx#sign) 的文档时,没有任何声明表明 /as 选项取决于操作系统版本。所以我怀疑可能还有其他需要更新的东西,但是由于我已经安装了最新的 .net Framework (4.5.1),并且没有列出其他依赖项,我还能更新什么?将我的开发平台迁移到 Windows 8 或 Windows 10 也不是我现在喜欢做的事情。

我想过简单地省略 /as 选项。它似乎处理附加到一个文件的多个签名。如果我按照客户的要求,无论如何他只想要代码上的一个签名(sha256 变体,使用新证书)。

当我提出这个问题时,我的客户回应说,一些技术人员从他购买证书的地方获得了示例 signtool 代码行。在他的测试机器(Windows 10)上,他发现它工作正常。他不在乎我是否忽略了这个选项,如果我保证这样做没有不利影响。我没有看到任何内容,因为就像我解释的那样,文件上只有一个签名,所以在我看来,附加另一个签名的选项是多余的。

不过,我不是 100% 确定。

【问题讨论】:

    标签: windows signtool


    【解决方案1】:

    Windows 7 sdk 没有 /as 选项。您必须升级到 Win 8.1 或更高版本。

    signtool 标志 /?

    应该显示所有选项。

    【讨论】:

    • 嗨,马特,感谢您的回复。我得出了同样的结论,并将我的开发机器移至 W10。我还了解了双重签名,一切正常。但有一个例外:虽然我可以对我的 .exe 进行双重签名,但我不能对 msi 文件进行双重签名,因为 msi 确实 - 所以文档说 - 只支持一个签名。我真的很好奇微软在今年年底退休 SHA-1 时 msi 安装程序会发生什么...... Greetz,Armin。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    相关资源
    最近更新 更多