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

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

在这里你可以找到输出,它在 Inno Setup exes 上显示警告:
https://docs.google.com/document/d/11frW_GxI0xSVcrAXh4_rqcKBQSaermAlpYKj4xzQi4o/pub
我该如何解决这个问题?
(仍然不确定它的标准代码签名与 EV 代码签名问题?我已经使用标准代码签名几年了,它总是有效。我可以升级到 EV 代码签名,但我如何确保它不是 Inno Setup 编译器问题?如您所见,警告已显示在上面 Inno Setup 的 URL 中)
为了验证它是否是 Inno Setup 或代码签名问题(参见/sf/answers/2034730981/),我做了以下工作:
我从微软下载了winqual.exe不需要 Inno Setup的文件调用。
我代码签名winqual.exe并上传到我的同一台服务器
我用 Internet Explorer 下载了相同的文件,它在不显示 SmartScreen 的情况下工作。
如果 Inno Setup 是导致此问题的主要原因,现在是否有意义?
如今,您必须使用 EV 代码签名证书。
请参阅将 Microsoft SmartScreen 信誉转移到更新的证书。
以下是原始答案,它解决了问题的一些细节。
如果您认为问题是由于未签名的卸载程序造成的,请确保SignTool相应地设置 Inno Setup 项目的指令。并确保SignedUninstaller指令有其默认值yes。
引用SignTool指令文档:
指定用于对安装程序进行数字签名的签名工具的名称和参数(以及卸载,如果 SignedUninstaller 设置为
yes)。当安装程序具有有效的数字签名时,用户在启动它时将不会看到“未识别的程序”警告。
如果要为卸载程序设置 NXCOMPAT 和 DYNAMICBASE 标志,您可以创建一个sign.bat同时调用signtool.exe和的批处理文件editbin.exe:
@echo off
editbin.exe /NXCOMPAT /DYNAMICBASE %1
signtool.exe sign ... %1
Run Code Online (Sandbox Code Playgroud)
调用必须按此顺序进行,否则会editbin.exe破坏签名。
然后在指令中使用 thesign.bat代替。signtool.exeSignTool
虽然我真的认为这没有必要,也没有任何帮助。
| 归档时间: |
|
| 查看次数: |
3921 次 |
| 最近记录: |