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 或代码签名问题(参见 ),我已完成以下操作:
我从微软下载了调用winqual.exe
的文件,不需要Inno Setup。
我对 winqual.exe
进行了代码签名并上传到我的同一服务器
我用 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.exe
和 editbin.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 天后,错误消息消失了。
我总是使用 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 或代码签名问题(参见 ),我已完成以下操作:
我从微软下载了调用
winqual.exe
的文件,不需要Inno Setup。我对
winqual.exe
进行了代码签名并上传到我的同一服务器我用 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.exe
和 editbin.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 天后,错误消息消失了。