Microsoft SmartScreen - 暂停使用 Inno Setup 安装程序?

Microsoft SmartScreen - suspended using Inno Setup installer?

我总是使用 Inno Setup 进行打包和发布。用户使用 link 下载应用程序,例如:https://oursite.com/codesigned/mysetup.exe

到目前为止,它一直有效。但最近我必须更新我的代码签名证书,因为它已过期。续订后我有 SmartScreen 问题,每个用户下载应用程序并得到这个以前没有的 Smartscreen。

我已经使用了 signtool.exe verify /pa innosetup-made-myexe.exe,它显示成功,我也用 Windows Application Certification Kit 进行了验证,表明它已通过,但是有警告,所有这些警告主要由 Inno Setup 生成。

在这里您可以找到输出,它在 Inno Setup exe 上显示警告:

https://docs.google.com/document/d/11frW_GxI0xSVcrAXh4_rqcKBQSaermAlpYKj4xzQi4o/pub

我该如何解决这个问题?

(仍然不确定它的标准代码签名与 EV 代码签名是否有问题?我已经使用标准代码签名几年了,它一直有效。我可以升级到 EV 代码签名,但我如何确保它不是Inno Setup 编译器问题?如您所见,Inno Setup 上面的 URL 中已经显示了警告)

为了验证它是否是 Inno Setup 或代码签名问题(参见 ),我已完成以下操作:

  1. 我从微软下载了调用winqual.exe的文件,不需要Inno Setup。

  2. 我对 winqual.exe 进行了代码签名并上传到我的同一服务器

  3. 我用 Internet Explorer 下载了相同的文件,但没有显示 SmartScreen 也能正常工作。

如果 Inno Setup 是导致此问题的主要原因,现在还有意义吗?

我认为这是正常行为。 当您的软件收集到足够 "likes" = 下载或安装时,SmrtScreen 将自动关闭此消息。

这真的是个烦人的功能,因为每次软件发布你都需要等待适当的时间,直到软件变得 "popular" 并且它被认为是安全的(没有证书或防病毒方法可以解决它)。

如今,您必须使用 EV 代码签名证书。
参见 Transferring Microsoft SmartScreen reputation to renewed certificate

下面是原始答案,它解决了问题的一些细节。


如果您认为问题是由于未签名的卸载程序引起的,请确保相应地设置 Inno Setup 项目的 SignTool 指令。并确保 SignedUninstaller 指令具有默认值 yes.

引用 SignTool directive documentation:

Specifies the name and parameters of the Sign Tool to be used to digitally sign Setup (and Uninstall if SignedUninstaller is set to yes). When Setup has a valid digital signature, users will not see an "unidentified program" warning when launching it.


如果您想为卸载程序设置 NXCOMPAT 和 DYNAMICBASE 标志,您可以创建一个 sign.bat 批处理文件,同时调用 signtool.exeeditbin.exe:

@echo off
editbin.exe /NXCOMPAT /DYNAMICBASE %1
signtool.exe sign ... %1

调用必须按此顺序进行,否则 editbin.exe 会破坏签名。

然后在 SignTool 指令中使用 sign.bat 而不是 signtool.exe

虽然我真的不认为这是必要的,也没有任何帮助。

您不需要此“Windows 应用程序认证工具包”。

@slappy 说的是正确的:

更新证书后,您需要足够的下载量和“好评”才能消失此消息。

您需要做的是使用 Microsoft Edge(不是 Chrome 或 Firefox!!!)下载您的应用程序。

它很可能会说“此下载可能有危险,已被阻止”。

然后您可以选择“仍然保留”。然后您可以选择“报告为安全”。

然后甚至 Smart Screen 都说它不信任您的应用程序(即使它是数字签名的,大声笑!!!),然后您必须选择“更多...”和“仍然安装”。

在您的计算机上安装它!我认为这很重要。

我使用了 5 台不同的计算机并多次报告我的应用程序是安全的并安装了它。

我也问过2个朋友(因为他们的IP地址不同)也是这样做的

我非常讨厌这个!!!!!!!!!!! 1 天后,错误消息消失了。