为什么Fiddler在Windows 8上无法安装我的证书?- 无法配置Windows信任Fiddler根证书

5
我有一个应用程序,它正在调用 Twitter,并且我需要检查流量,以便更多地了解 oAuth。
当我双击ssl流量时,我会得到一个黄色框,提示我去更改选项(顺便说一下,我通过代理运行我的应用程序)。

enter image description here

在阅读了有关在我的机器上使用Fiddler创建证书的内容后,我按照以下说明点击链接让Fiddler在我的机器上安装证书...

http://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddlerforwin8

然而,与此发生的相反...

enter image description here

我收到了以下错误信息:

"无法配置Windows信任Fiddler根证书",这是屏幕截图:

enter image description here

当我按照建议检查日志时(尽管有些混淆,因为我认为日志与每个单独的请求有关),无论如何,我看到了这个...

enter image description here

我甚至尝试手动安装证书,但没有成功。希望有人能帮助我在Windows 8上让Fiddler/SSL解密正常工作!:-)
更新:针对Eric在下面回答中提出的问题...
嗨Eric,谢谢您的回复。
1)弹出了一个框,上面写着“证书信任”,这就是我在上面截图的框。它是告诉我要检查日志的框。
2)我有一个帐户,当我检查我的用户时,它说我的用户名下面是管理员。
3)我已经尝试以管理员身份运行Fiddler,但没有成功。
我还尝试将证书手动拖放到certmgr.msc工具中,但它显示一个带有一条线的小圆形光标。听起来像是权限问题,但我只是看不出为什么,因为我已经拥有全部权限...

听起来你可能遇到了和这个人一样的问题,如果你正在使用公司的Windows账户。有一个策略设置阻止了这些事情。你可能还需要使用Bouncy Castle Cert Maker插件。https://dev59.com/YZLea4cB1Zd3GeqP686C#34718087 - kingargyle
5个回答

5

我终于找到了解决组策略试图限制您信任的对象的方法。

方法1

  1. 进入Fiddler HTTPS选项,将根证书导出到您的桌面。
  2. 打开mmc.exe并向"本地计算机"添加证书控件。
  3. 将Fiddler证书导入到第三方根证书存储中。
  4. 直接使用Fiddler,看它生成新证书并观察系统信任它们。

将证书导入本地计算机第三方根存储

方法2

违反意图安全控制并绕过它。

  1. reg delete HKLM\Software\Policies\Microsoft\SystemCertificates\Root\ProtectedRoots /f
  2. 返回Fiddler HTTP选项,切换 Decrypt HTTPS traffic 开关,再次按下确定以通常的方式安装证书。
  3. 可能需要运行 gpupdate /force 以将设置恢复为管理员预期的状态。

对于这个问题,组策略设置可能如下所示:

防止导入证书的组策略

如果您在 Local_Machine \ Software\Policies\Microsoft\SystemCertificates\Root\ProtectedRoots 下的注册表中有任何 Flags 值,则此锁定可能会生效。

@EricLaw - 您是否考虑将Fiddler更改为默认尝试将证书导入第三方存储?似乎 "第三方存储" 可能不太受限制。

这是我见过的关于第三方存储的最好说明:http://kreelbits.blogspot.com/2014/02/whats-purpose-of-users-third-party-root.html


不确定您在第一种方法的第四步中所指的是什么。我需要在 Fiddler 中重新生成证书,然后再次将其导入到浏览器/Windows 中吗? - MasterJoe
第四步本意是“现在正常使用 Fiddler”。而不是另一种导入操作。 - Gabe

4
我曾经遇到一个类似的问题(在 Windows 7 上),通过按照这里的说明解决了: http://casualtechs.blogspot.com.au/2010/06/problem-when-trying-to-import.html(唯一的区别是我们要将 Fiddler 证书添加到 "受信任的根证书颁发机构 -> 本地计算机" 而不是该网站上提到的 "受信任的发布者")。我的修改步骤如下:
  1. 从 "fiddler options" -> "Https" -> "Export root certificate to desktop" 菜单中获取 Fiddler 根证书
  2. 打开证书(双击它)
  3. 点击安装证书按钮
  4. 点击 "下一步" 按钮
  5. 选择 "将所有证书放入下列存储"
  6. 点击 "浏览" 按钮
  7. 勾选 "显示物理存储" 复选框
  8. 展开 "受信任的根证书颁发机构" 文件夹
  9. 点击 "本地计算机"
  10. 点击 "确定" 按钮。
  11. 点击 "下一步" 按钮,然后点击 "完成" 按钮
基本上,当我尝试导入 Fiddler 根证书时错过的部分是深入 "受信任的根证书颁发机构" 文件夹下的 "本地计算机" 文件夹。您需要确保勾选如下所示的 "显示物理存储" 复选框:

打勾 "显示物理存储"


你所说的“本地计算机”选项在哪里?我在Windows证书管理器中没有看到它。 - MasterJoe
在 certmgr 中选择本地计算机是一个单独的步骤,但我是从安装证书向导中选择了此选项,而不是从 certmgr 中选择。我已经澄清了我的答案并添加了一张截图。 - cosjav

2
该错误信息表明,您的Per-User证书存储不允许您将证书放入其中。有时,这是因为公司集团策略阻止最终用户信任证书。有时,这是因为第三方软件(例如VPN或安全客户端)更改了您的软件配置。有时,这是因为某个地方存在损坏的ACL。
问题:
1.在Log选项卡上,错误消息之前会出现什么对话框? 2.您是否是该计算机的管理员? 3.如果是,以管理员身份运行Fiddler并再次尝试,成功还是失败?
解决方法:
如果#3不起作用,请单击“导出根证书到桌面”按钮。然后使用“开始->运行”启动“certmgr.msc”。尝试将证书从桌面拖到“受信任的根证书颁发机构”文件夹中。如果有任何错误消息,请列出。

嗨Eric,我想告诉你,我刚刚卸载了Windows 8,因为它似乎是问题的根源。现在使用Windows 7可以解密(我可以看到使用http:的网站上的数据)。然而,我的.NET应用程序现在出现了这个错误...“根据验证过程,远程证书无效。”有什么想法吗? - Exitos
通常,这意味着您尚未配置Windows信任Fiddler的根证书。您应该实现证书验证回调并查看证书所包含的错误。 - EricLaw
我已经尝试了以上所有建议,但没有成功(在Windows 7上)。当我尝试使用certmgr手动导入证书时,我收到的错误消息是“导入失败,因为存储是只读的、存储已满或存储没有正确打开”。不确定为什么会出现这种情况,因为我是计算机管理员,不应该有任何限制。有任何想法吗? - cosjav
成功解决了 - 我之前试图将证书添加到“受信任的根证书颁发机构”文件夹中而不是该文件夹内的“本地计算机”文件夹... - cosjav
我尝试过了。Fiddler证书未出现在受信任的根CA列表中,也没有任何错误消息。 - MasterJoe

0

当配置Telerik的Fiddler来处理HTTPS时,我无法安装根证书。错误是“在用户根列表中找不到根证书”。我通过暂时关闭WebRoot(我的杀毒软件),然后重新尝试启用HTTPS处理来安装Fiddler的根证书来解决问题。您可能需要单击HTTPS选项卡上的操作按钮以删除/重置先前的证书,然后才能创建新证书。


-1

我通过 工具 > 选项 > HTTPs > 操作 > 重置所有证书 来重置我的证书,但是它没有起作用

这是我解决问题的方法:

  • 重新启动 CryptSvc 服务。
  • 右键单击 HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\Root\ProtectedRoots。
  • 权限 > 当前 Windows 用户 > 完全控制。
  • 删除完整的 HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\Root 键。
  • 重新启动 Windows,就完成了。

参考:https://www.addictivetips.com/windows-tips/fix-chrome-not-working-windows-10/


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