如何在Windows 10的SmartScreen过滤器中保持声誉,续订之前的代码签名证书后?

4

我已经拥有了一个代码签名证书,持续了3年。当我使用此证书签署我的软件时,在软件从互联网下载的过程中,签名不会引起任何SmartScreen警告。

这个证书即将在本月到期,所以我用同一家公司为其续费了另外3年。

问题是,现在当我签署我的软件时,新证书并没有与Windows 10的SmartScreen建立任何声誉。因此,当软件被下载和运行时,它会显示以下警告:

enter image description here

(我已经使用它签署我的软件超过2周了。但警告仍然存在。)

我知道可能性不大,但是否有办法将这个新证书与旧证书关联,以保留旧证书在SmartScreen中的声誉?

PS. 这个“证书更新业务”和声誉的丧失正让我承受巨大的损失,而且为什么开发者必须支付证书更新的声誉损失呢?


1
一个快速的跟进。我记得我最终将我的可执行文件提交到了微软公司(https://www.microsoft.com/en-us/wdsi/filesubmission)。我不确定它是否有帮助。但是在我的更新签名开始被他们识别而不触发那个讨厌的警告之前,大约需要2-3周的时间。 - c00000fd
2个回答

3

这不是你问题的确切答案,但我认为以下方法可能也会对你有所帮助:

创建一个小型安装程序包,其唯一功能是从web服务器下载并运行真正的、最新的安装程序EXE/MSI (我们称之为“次要安装程序”)。

你可以随时更新“次要安装程序”,但务必避免对“主安装程序”进行任何更改(重新构建)。

这为什么有效呢?

  • 你只需要对主安装程序进行一次代码签名。只要EXE保持不变,它的签名和信誉就是有效的,即使证书本身已过期(过期证书将无法让你签署新代码,但已经签署的代码仍然有效)。
  • 智能筛选器只检查你的主安装程序。它显然不关心该程序是否下载并运行其他程序。

当然,你的主安装程序(或者更精确地说,它的证书)仍然需要获得信誉,但之后你就可以开始了。

我使用了Inno SetupInno Download Plugin来创建这样一个“主安装程序”(生成了一个大约700KB的设置)。


是的,这是一种有趣的方法。我会称之为绕过他们的SmartScreen。我已经看到这样做很多次了。甚至MS VS安装程序也做了类似的事情。所以我想当你自己下载第二个可执行文件时,你显然会在运行之前清除它的“Mark-of-the-web”流。这是一个更加复杂的解决方案,但我可以理解它可能是合适的。在我的情况下,大约需要2-3周才能再次识别更新的签名。非常烦人,但我想我必须经历这个过程。没有办法争辩MSFT的“智慧”。 - c00000fd
作为额外的福利,第一个安装程序可以自动选择适当的安装包(例如32/64位)。 - Udo G
是的,我听到你了兄弟。 - c00000fd
除非您选择使用EV证书,否则我看不到其他解决方案。否则,一旦您的证书过期,您将再次遇到相同的问题,浪费宝贵的时间等待“声誉”。 - Udo G
我试图获取EV证书,但由于我是独资经营者(带有公司),他们没有向我发放。您自己有关于EV证书的任何经验吗? - c00000fd

0

这是微软的设计,每次更新后您都需要建立信任,然后智能屏幕过滤器才会为您的证书移除。如果您需要立即获得声誉,您需要购买EV CS。我知道EV CS太昂贵了,但我们别无选择。即使微软也不回答这个问题。要么承担成本,要么忍受等待声誉建立。


说“只需购买EV证书”并不是一个公平的答案。我尝试过,但他们不会向与业务无关的自由开发人员出售。我对这些EV证书有什么误解吗? - c00000fd
要从CA获取EV证书,您需要注册企业.. 要么注册为独资企业,要么注册为私人有限公司以获得EV。这是CAB论坛的规定。 - Pradeep Kumar V

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接