我需要拦截从本地应用程序到远程网站的某些 HTTPS 流量。在 Win7 上,使用以下命令很容易实现http://FiddlerTool.com 现在我正在运行 Windows10 机器,无论我做什么,系统都不信任 Fiddler 生成的临时证书。到目前为止执行的步骤:1. 使用 Fiddler 设置/Https/Actions 菜单中的“信任根证书”操作 2. 将根证书导出到桌面,导入到本地计算机和当前用户的受信任根证书颁发机构部分
IE 仍然报告“该证书不是由受信任的根颁发机构颁发的”,而我需要跟踪的客户端应用程序抱怨“无法与远程主机建立安全的 SSL/TLS 连接”,换句话说,这是相同的诊断。
答案1
我遇到了类似的问题,即 Windows 10 中的 Fiddler 无法接收非 HTTPS 流量。
解决如下:在 Fiddler(v4.6.2)中:工具菜单>>Fiddler 选项>>HTTPS 选项卡>>操作按钮>>重置所有证书。
显然,这个问题(至少是我遇到的问题)是由于混合使用新旧证书造成的:
我对最新版本的 Fiddler 进行了更改,以提高证书创建的性能,并避免 Chrome 和 Firefox 中出现新的证书验证逻辑问题。Fiddler 最大的变化是 CertEnroll 现在是 Windows 7 及更高版本上的默认证书生成器。不幸的是,此更改可能会给以前信任 Fiddler 根证书的用户带来问题;浏览器可能会显示错误消息,如 NET::ERR_CERT_AUTHORITY_INVALID 或证书不是由受信任的证书颁发机构颁发的。
参考: https://textslashplain.com/2015/10/30/reset-fiddlers-https-certificates/
答案2
好的,看来我已经解决了。为了解决这个问题,我必须将证书安装到受信任的根颁发机构(企业)下的特定物理商店中。导入注册表商店没有帮助。
答案3
我重置了我的证书,Tool > Options > HTTPs > Action > Reset all certificates
但是它不起作用。
这就是我解决问题的方法
- 重新启动服务 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/
答案4
域迁移后我遇到了同样的问题,以下方法修复了该问题:
- 以管理员身份打开 regedit
- 转到 HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\Root\ProtectedRoots
- 鼠标右键,权限
- 信息
You do not have permissions to view the current permission settings for ProtectedRoots, but you can make permission changes.
- 将所有者设置为 MachineName\Administrators
- 将您的 NewDomain\Username 设置为 READ
- 将 NT SERVICE\CryptSvc 设置为完全控制(如果需要)
- 按“确定”并关闭权限窗口。
- 重新开放权限,并将所有者改为SYSTEM
- 转到 HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\Root\ 并检查那里的权限。我们注意到所有者仍然是 OldDomain\Username