我总是使用InnoSetup进行打包和发布。 用户使用链接下载应用程序,例如: https : //oursite.com/codesigned/mysetup.exe
直到现在,它一直工作,但最近我不得不续约我的代码签名证书,因为它过期了。 更新后,我有SmartScreen问题,每个用户下载应用程序,并得到这是以前没有的Smartscreen。
我已经使用signtoo.exe verify /pa innosetup-made-myexe.exe
,它显示成功,我也做了与Windows Application Certification Kit
的validation,显示它已通过,但与警告,所有这些WARNNINGS主要由InnoSetup生成。
在这里你可以find输出,在InnoSetup上显示WARNINGS的例子:
https://docs.google.com/document/d/11frW_GxI0xSVcrAXh4_rqcKBQSaermAlpYKj4xzQi4o/pub
我该如何解决这个问题?
(还不知道它的标准代码签名和EV代码签名问题?我已经使用了几年的标准代码签名,它一直工作,我可以升级到EV代码签名,但我怎么能确保它不是InnoSetup编译器问题?可以看到WARNNINGS已经在InnoSetup上面的url中显示)
请指教。
编辑:
以validation其innosetup或代码签名问题(请参阅https://stackoverflow.com/a/29067585/285594 )我已经完成以下操作:
一)从microsoft
我已经下载的文件调用winqual.exe
不需要innosetup
b)我的代码签名winqual.exe
并上传到我的同一台服务器
c)我下载了与Internet Explorer相同的文件,它的工作原理没有向我展示SmarTScreen
现在是否有任何意义,如果innosetup
是这个问题的主要原因?
如果您认为问题归因于未签名的卸载程序,请确保相应地设置您的InnoSetup项目的SignTool
指令。 并确保SignedUninstaller
指令的默认值yes
。
引用http://www.jrsoftware.org/ishelp/index.php?topic=setup_signtool
指定用于对设置进行数字签名的签名工具的名称和参数( 如果SignedUninstaller设置为
yes
,则卸载 )。 当安装程序具有有效的数字签名时,用户在启动时不会看到“未识别的程序”警告。
如果要将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
。
虽然我不认为这是必要的,也没有任何帮助。
我认为这是正常的行为。 当您的软件收集足够的“喜欢”=下载或安装SmrtScreen将自动关闭此消息。
这真是令人讨厌的功能,因为每个软件版本,您需要等待适当的时间,而软件变得“流行”,并被认为是安全的(没有证书或防病毒方法可以解决它)。