我总是使用InnoSetup进行打包和发布。 用户使用链接下载应用程序,例如: https : //oursite.com/codesigned/mysetup.exe
直到现在,它一直工作,但最近我不得不续约我的代码签名证书,因为它过期了。 更新后,我有SmartScreen问题,每个用户下载应用程序,并得到这是以前没有的Smartscreen。
我已经使用signtoo.exe verify /pa innosetup-made-myexe.exe ,它显示成功,我也做了与Windows Application Certification Kit的validation,显示它已通过,但与警告,所有这些WARNNINGS主要由InnoSetup生成。
如何对绑定JavaFX应用程序时创build的可执行启动器进行代码签名?
应用程序签名/validation
VeriSign Class 3证书不被Windows信任?
在这里你可以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是这个问题的主要原因?
Windows Phone 8.1公司简介
便宜的Windows驱动程序签署64位Windows 7
为什么Windows不能find我的证书的颁发者?
如何使用GoDaddy中的.SPC或.PEM文件签署代码(.EXE文件)(使用Ubuntu)?
Windows内核驱动程序代码签名和SHA256
如果您认为问题归因于未签名的卸载程序,请确保相应地设置您的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将自动关闭此消息。
这真是令人讨厌的功能,因为每个软件版本,您需要等待适当的时间,而软件变得“流行”,并被认为是安全的(没有证书或防病毒方法可以解决它)。