我怎样才能让SmartScreen筛选器信任自签名证书(How can I make SmartSc

2019-07-22 06:00发布

Windows 8的下微软的SmartScreen筛选器是一个小开发商的噩梦。

虽然我知道给最终用户带来的好处和效益,在从最终用户的计算机上安装自己阻止恶意程序,我和其他许多开发商宁愿不支付费用的签名证书,或者更糟,一个EV守则每年续期代码签名证书。 此外,当用于内部使用而开发的产品与从内部CA,存储在受信任的发行商店信任的证书签名,他们仍然堕入滤波器的过激行为。

开发人员和管理员使用能够通过在受信任的发布商店安装一个发布者的代码签名证书来禁用警告和提示。 创意开发人员可以安装自己的自签名的代码签名证书,还有当他们安装一个先决条件与付费验证码代码签名证书,签署并加盖时间戳。 在此之后,由发布者签名的程序将被信任,也不会跳闸SmartScreen筛选器报警。 从本质上讲,一旦信任,出版商从一期的费用免费。

最近的SmartScreen筛选器的改变(其在Windows 8中包含为OS“功能”)讲清楚微软希望你购买一个代码签名证书,而不是围绕他们已经为您创建的问题创造性地工作。 有没有人发现信任谁在默认情况下使用他们的自签名代码签名证书出版商的新方法(即不显示提示)? 短完全关闭过滤器,什么都能最终用户做让SmartScreen筛选器知道要始终信任自签名的证书?

请注意,在购买签名证书编号是不是这个问题的答案。 我正在寻找一种方式来告诉SmartScreen筛选器相信,不从外部购买证书发布者,而是发出自己为他们的组织内部使用。

更新:我想我可能已经找到了解决办法! 从MSDN ,SmartScreen筛选器可以在Windows 8和Internet Explorer 10列为受信任的站点站点禁用。 如果有人可以验证此方法适用于下载的安装程序,并在Windows 8中受信任的站点,这将不胜感激运行,会有很大帮助独立软件开发商和内部开发团队。 这也将是回答这个问题所需要的解决办法。 受信任的站点可以通过组策略进行配置,所以这将是简单的从那里。

编程,关闭SmartScreen筛选器受信任的站点区域可以通过设置或者HKLM \ SOFTWARE \策略\实现微软\的Windows \ CurrentVersion \ Internet设置\区\ 2!2301的机器或HKCU \软件\政策\微软\窗户\ CURRENTVERSION \ Internet设置\区\ 2!2301为用户0,将站点添加到信任到可信站点区域,如图可以做这个问题 。

可能有人请确认无符号或在Windows 8上我提出的解决办法功能的自签名的可执行从受信任的站点下载? 我没有使用Windows 8的自己,花了上证费我的操作系统升级的预算。

Answer 1:

若要从引用MSDN网站 :

批评者可能声称的SmartScreen是“逼迫”开发商花钱买证书。 应当强调,要建立或维持与声誉的SmartScreen EV代码签名证书不是必需的。 与标准的代码签名证书,甚至签名的文件签名的文件继续,因为他们已经从应用的声望在IE9去年推出建立声誉。 但是,EV代码签名证书的存在是一个重要指标,该文件是由已经通过了严格的验证过程和硬件,让我们的系统比未签名或无更快地建立该实体的名誉签署实体签名-EV代码签名的程序。

换句话说,EV(支付)的验证是在一个大的算法来决定是否显示与否的SmartScreen警告只是一个因素。 如果你有很多的下载程序,或者如果你的程序下载链接已经有一段时间没有改变,一些工作人员,你可以让你的程序显示警告。 此外,通过数字签名的代码,你可以增加你的声望器件的应用。 这是直接从微软的专题网页 。



Answer 2:

使用来自微软Windows 8的90天的试用期,我已经能够确认我的解决办法确实工作。 如果你愿意支付代码签名证书一次且仅一次而不是支付年费的,此方法应为你工作好,但我不能做任何保证。 我的解决办法是每台机器,但应该很容易转换每个用户的工作。

这是我的解决方案:

  1. 建立自己的证书基础设施。
  2. 发布您的根CA证书,通过你的根颁发的任何中间CA证书,并通过您的中间CA的颁发给你的网站为.CER文件中的任何代码签名证书的副本。
  3. 在您的网站,是由你的根CA颁发安装SSL证书
  4. 创建执行以下任务的安装/下载的应用程序:
    • 安装根CA证书(从您的网站,步骤2)到受信任的根证书颁发机构存储在最终用户的计算机。
    • 通过设置HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ Internet设置\区\ 2!2301至0禁用受信任的站点Internet区域的SmartScreen筛选器。
    • 通过添加注册表项(S)HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ Internet设置\ ZoneMap \域名将您的网站到区域地图\ yourdomain.com \ yoursubdomain。
    • 通过创建一个名为HTTPS与在上一步中创建的密钥值2 DWORD映射域到受信任的站点区域。
  5. 购买微软的受信任根程序,最好的EV证书的成员的代码签名证书。
    • 您购买前,请确保您的代码签名证书使用的CA证书和时间戳方案不会导致OID的1.3.6.1.4.1.311.10.3.13或1.3.6.1.4.1.311.10.3.14,因为这些会使在证书过期签名到期,无论是打上时间戳与否。
  6. 注册并在第5步购买的证书时间戳的下载/安装验证没有使用期限制的签名。 如果一切正常,你可以把你购买的代码签名证书在安全的地方,并锁定了。
  7. 发布您的下载/安装程序到您的网站。 使它成为一个首要的预下载您的所有产品。
  8. 从这点上来说,你可以不使用SmartScreen筛选器是一个滋扰自己的内部证书颁发机构颁发的代码签名证书(以及其他证书,为此事)。

我已经使用这种方法迄今已收到最坏的警告“这种类型的文件可能会损害您的计算机。”这是典型的“你下载可执行文件!” 警告。 它不隐藏运行选项并没有出现为ClickOnce部署使用通过点击“发布”在VS2010中产生的引导网页。

感谢所有的评论和链接。



Answer 3:

我发现一个非常简单的方法来绕过过滤器,即使没有管理员权限。 你需要做的是:

  1. 打开记事本
  2. 键入下面一行: @%*
  3. 将文件另存为"SkipSmartScreen.bat"在同一文件夹作为您的应用程序(是的,用引号)。 您可以稍后重命名该批处理文件
  4. 要启动您的应用程序,拖动你的exe文件到批处理文件

那么这将绕过SmartScreen筛选器。

经测试在Windows 10家,专业版和企业版和Windows 8专业版。

这个怎么运作:

  • @ -这仅仅是外观,它隐藏正在执行的命令的名称
  • %* -这扩展到通过(例如,你掉在批处理文件的文件中的所有命令行参数
  • 整个事情:它通过批处理文件执行文件,就好像是在批处理文件中一行。 出于某种原因,Windows不会做这从一个批处理文件,执行文件的任何检查。


Answer 4:

这里是很好的解释了如何关闭的SmartScreen:
- 视窗的SmartScreen -开启或关闭在Windows 8
- 文件夹选项中取消选中选项

我用什么为我工作? 这是“一个选项”从第一个链接:

  1. 打开控制面板 (图标查看),并单击/ TAP的操作中心图标。
  2. 在行动中心的左窗格中,单击/ TAP 更改Windows设置的SmartScreen链接。
  3. 如果UAC提示,然后单击/ TAP
  4. 选择(点)为您希望的Windows的SmartScreen处理无法识别的程序的选项,然后单击/水龙头就OK了。
    注:默认选项是从互联网上运行的应用程序无法识别之前得到管理员的批准
  5. 完成后,你可以,如果你想关闭行动中心。

我希望这是你所期待的。 :)



文章来源: How can I make SmartScreen Filter trust a self-signed certificate