Setup.exe 文件下载触发器 Windows SmartScreen

Setup.exe file download triggers Windows SmartScreen

我创建了一个从 Visual Studio 安装项目生成的 Setup.exe 文件。我有一个我公司从Digicert购买的代码签名证书,我们已经用在其他产品上了,所以应该不错。我已经设置了一个 post-build 事件来签署我的应用程序,我使用 signtool.exe 来签署生成的 .msi 和 setup.exe,所以一切都应该成功签署。如果我 运行 进行任何类型的签名验证,或查看文件属性,它会显示我的数字证书。

如果我在 IIS (8.5) 中托管此 Setup.exe 文件,允许目录浏览,并设置我的 MIME 类型以允许下载文件,我可以下载此 Setup.exe 文件从浏览器到我的电脑。如果我 运行 它,然后我得到一个 Windows SmartScreen 过滤器说它是一个无法识别的应用程序。在那之下,它说出版商是未知的。如果同一个 setup.exe 文件不是通过 IIS 下载的,例如从一台计算机复制到另一台计算机并执行,则没有 Windows SmartScreen 过滤器。所以这个问题似乎是由从 IIS 下载引起的。有办法解决这个问题吗?

我发现了问题所在。根据这篇文章: http://social.technet.microsoft.com/wiki/contents/articles/32288.windows-enforcement-of-authenticode-code-signing-and-timestamping.aspx

它解释说,从 2016 年 1 月 1 日开始,MS 将不再信任使用 SHA-1 代码签名证书签名的新代码,这正是我使用的。我换了一个新证书,问题就解决了。