【问题标题】:VS2015 Installer Projects - Adds Invalid Microsoft signature to MSIsVS2015 安装程序项目 - 向 MSI 添加无效的 Microsoft 签名
【发布时间】:2016-02-15 13:32:48
【问题描述】:

当您构建 MSI 时,此 Microsoft 工具会添加一个无效的 Microsoft 数字签名。

有人知道阻止该工具添加数字签名的简单方法吗?还是在构建后删除数字签名的简单方法?

VS2015 安装程序项目链接 https://visualstudiogallery.msdn.microsoft.com/f1cc3f3e-c300-40a7-8797-c509fb8933b9

即使签名错误,MSI 文件也能正常工作。但是,当有人尝试使用 Edge 浏览器下载 MSI 时,它会阻止下载并显示此下载错误消息“此文件的签名已损坏或无效”。带有一个可怕的红色错误盾牌图标。

如果您想从您的产品或工具中吓跑潜在用户,这是实现此目的的完美方式。

咆哮: 微软在 2012 年放弃该工具后再次提供该工具时,对此表示了深深的敬意。告诉开发人员“我们确实听你的,我们带回了这个流行的工具。”好吧,你不认为微软可以指派一个低级别的开发人员来维护它并修复这样的简单问题。似乎只是 MS 将其扔进沙箱并让它在那里散开的另一个带有坏轮子的玩具。来吧微软,花 10 分钟解决这个问题。

【问题讨论】:

  • 我认为它更像是所有 MSI 专家的中指。

标签: visual-studio-2015 windows-installer


【解决方案1】:

问题似乎是旧的 SHA1 证书在 2015 年底之后不再有效,并且强制执行它的安全更改,如在此线程和 1 月 12 日安全更新评论中:

Internet Explorer shows valid certificate as "corrupt or invalid signature"

我没有亲自在这里尝试过这个想法,但是在 MSI 文件上测试以删除证书的代码看起来相当简单:

http://www.fluxbytes.com/csharp/remove-digital-signature-from-a-file-using-c/

【讨论】:

  • PhilDW,谢谢。关于 SHA1 在 2016 年 1 月被弃用的信息很高兴知道。这确实是一个 SHA1 证书。我尝试了 Fluxbytes 工具(在您链接的页面上有预编译的下载)。但即使该工具报告它已删除证书,它似乎也没有删除证书。当我在 Windows 中检查文件属性时,它仍然显示带有证书的数字签名选项卡。不过谢谢,这值得一试。
  • 昨晚有个客户打电话问我这个问题。他正在使用 InstallShield 2012,现在必须在更新到 InstallShield 2015 或不再进行代码签名之间做出选择。
  • 我已经尝试过 C++ 和 C# ImageRemoceCertificate 调用,但根本问题是出现错误 87,无效参数 - 如果成功,我会在此处发布。
  • 太烦人了 - 我可以在 exe 上调用 ImageEnumerateCertificates() 但不能在 MSI 文件上调用。
【解决方案2】:

要解决此问题,您还可以尝试对包进行双重签名,而不是完成删除数字签名。这样,有关无效签名的警告消息将在下载时消失,并且正确的信息将在安装时出现在 UAC 提示中。

双重签名当然需要 SHA2 证书。

早于 Windows 7 的操作系统无法识别 SHA 2 签名,因此如果您也针对这些签名并希望您的签名在那里可见,则需要执行 dual signing

微软解释steps for dual signing,并提供更多细节。

【讨论】:

  • 很好的信息,但我不认为双重签名解决了这个问题。问题似乎与 .msi 文件有关,Microsoft 的文章提到双重签名不适用于 .msi 文件。
  • 确实,MSI 不支持双签,但里面的文件支持。文章还提到了如何处理 MSI 的签名:social.technet.microsoft.com/wiki/contents/articles/…
  • 博格丹,感谢您提供这些链接。我阅读了材料,我想要处理的内容看起来要复杂得多。目前,我可能会等待一段时间,看看微软是否修复了他们损坏的工具。我知道,如果我认为他们会这样做,我可能是个傻瓜。这开始看起来像是 Y2K 混乱(2000 年的错误)规模的东西。
  • Bogdan,您的一个链接说:“在 2017 年 1 月 1 日之后,Windows 将不再信任具有 SHA-1 签名(文件哈希或时间戳)的文件。”这是否意味着 Windows 将完全拒绝运行 SHA-1 签名的 MSI——即使用户想要继续?
  • @ LT Dan 不,它只会对从 Internet 下载的文件发出警告消息(如文章中的示例屏幕截图所示),并且还会在 UAC 和 SmartScreen 中显示“Publisher Unknown”,但是用户可以运行它。此外,这仅适用于 Win 7 和更新的操作系统。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多