我总是使用Inno安装程序进行打包和发布。用户使用链接下载应用程序,例如:https://oursite.com/codesigned/mysetup.exe
到现在为止,它一直起作用。但是最近我必须更新我的代码签名证书,因为它过期了。在更新之后,我遇到了SmartScreen问题,每个用户都下载了这个应用程序,并获得了以前没有的Smartscreen。

我使用了signtool.exe verify /pa innosetup-made-myexe.exe,它显示了成功,我还使用Windows Application Certification Kit进行了验证,这表明它已经通过,但是使用WARNNINGS,所有这些WARNNINGS都是由Inno安装程序生成的。


在这里,您可以找到输出,其中它在Inno安装程序实例上显示警告:
我怎样才能解决这个问题?
(仍然不确定它的标准代码签名还是EV代码签名问题?我已经使用了几年的标准代码签名,它总是有效的。我可以升级到EV代码签名,但是如何确保它不是Inno安装编译器问题?正如您已经看到的,WARNNINGS显示在上面到Inno安装程序的URL中)
要验证是否存在Inno安装或代码签名问题(请参阅https://stackoverflow.com/a/29067585/285594),我已经完成了以下操作:
winqual.exe,它不需要Inno安装程序。winqual.exe进行了签名,并上传到我的同一台服务器。如果Inno安装是造成这个问题的主要原因,那么现在有什么意义吗?
发布于 2015-03-16 08:34:18
现在,您必须使用EV代码签名证书。
见Transferring Microsoft SmartScreen reputation to renewed certificate。
下面是最初的答案,其中涉及问题的一些细节。
如果您认为问题是由于未签名的卸载程序造成的,请确保相应地设置Inno安装项目的SignTool指令。并确保SignedUninstaller指令具有其默认值yes。
指定用于数字签名设置的签名工具的名称和参数(如果将
yes).设置为 SignedUninstaller,则为SignedUninstaller和卸载)。当安装程序具有有效的数字签名时,用户在启动它时不会看到“不明程序”警告。
如果要将NXCOMPAT和DYNAMICBASE标志设置为卸载程序,则可以创建同时调用signtool.exe和editbin.exe的signtool.exe批处理文件。
@echo off
editbin.exe /NXCOMPAT /DYNAMICBASE %1
signtool.exe sign ... %1调用必须按此顺序进行,否则editbin.exe会破坏签名。
然后在sign.bat指令中使用signtool.exe而不是signtool.exe。
虽然我并不认为这是必要的,也没有任何帮助。
发布于 2015-03-16 05:14:27
我觉得这是正常的行为。当您的软件收集到足够多的“喜欢”=下载或安装时,SmrtScreen将自动关闭此消息。
这是非常恼人的特性,因为在每个软件发布时,您都需要等待适当的时间,而软件变得“流行”,并且它被认为是安全的(没有证书或防病毒方法可以解决它)。
发布于 2021-07-25 23:17:13
您不需要此"Windows应用程序证书工具包“。
@slappy所说的是正确的:
在您的证书更新后,您需要足够的下载和“良好的评论”,然后这个消息消失。
您需要做的是使用Microsoft下载应用程序(而不是Chrome或Firefox!)。
它很可能会说“这个下载可能是危险的,并且已经被封锁了”。
然后你可以选择“保留任何方式”。然后你可以选择“报告作为安全”。
然后,即使智能屏幕说它不信任你的应用程序(即使它是数字签名的,LOL!),那么你必须选择“更多.”还有“无论如何安装”。
安装在你的电脑上!我认为这很重要。
我使用了5台不同的计算机,并多次报告我的应用程序安全,并安装了它。
我还请了两个朋友(因为他们的IP地址不同)来做同样的事情。
我很讨厌这样做!1天后,错误消息消失了。
https://stackoverflow.com/questions/29067877
复制相似问题