我们已经使用 SignTool.exe 和 GoDaddy 证书对我们的产品安装进行了签名,并且我们的签名在 Windows 中显示为有效并使用 SignTool 的“验证”选项。但是,当在 Internet Explorer 9 中下载该文件时,它会报告“的签名已损坏或无效”。
我们显然不希望我们的用户在安装我们的设置时遇到问题,所以我需要帮助来修复它。奇怪的是网上基本没有关于这个问题的帮助。
我们已经使用 SignTool.exe 和 GoDaddy 证书对我们的产品安装进行了签名,并且我们的签名在 Windows 中显示为有效并使用 SignTool 的“验证”选项。但是,当在 Internet Explorer 9 中下载该文件时,它会报告“的签名已损坏或无效”。
我们显然不希望我们的用户在安装我们的设置时遇到问题,所以我需要帮助来修复它。奇怪的是网上基本没有关于这个问题的帮助。
Microsoft 于2016 年 1 月 12 日发布了安全更新。此更新改变了Windows 实施验证码代码签名和时间戳的方式。
如果您的代码签名证书具有 SHA1 签名,则在 2015 年底之后使用此类证书签名的任何内容都被标记为无效签名。因此,您需要重新颁发证书以满足新要求。
微软知道该错误:
http://connect.microsoft.com/IE/feedback/details/800433/kb2870699-breaks-ie-msi-signature-validation
我通过反复试验发现这是由破坏 IE 的 Windows 更新引起的:
Internet Explorer 累积安全更新 (2870699) - 2013 年 9 月 10 日发布
http://support.microsoft.com/kb/2870699
http://technet.microsoft.com/en-us/security/bulletin/ms13-069
我安装了所有最新更新并能够重现该问题。然后我卸载了这个单一的更新,它解决了这个问题。然后我重新安装了更新,它又坏了。
这是不好的!
旧消息,但是如果您今天发现自己在这里,我们刚刚发布了一组可以帮助解决此问题的步骤(不是作为开发人员,而是作为尝试运行安装程序的用户)。详细信息在我们的博客中,但简而言之,您的主要选择是: