如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到
很多开发者在调试网络请求时会使用 Fiddler Everywhere 作为抓包工具,它的中间人机制会生成自签名的 CA 证书,浏览器默认会校验 HTTPS 证书的可信度,一旦发现证书不是由受信任的根证书颁发机构签发,就会弹出安全警告甚至直接拦截请求。要避免被浏览器检测到,核心思路是让浏览器信任 Fiddler Everywhere 的根证书,同时做好相关配置。
一、安装并信任 Fiddler Everywhere 根证书
这是最基础也最关键的一步,只有浏览器信任了 Fiddler Everywhere 的根证书,才不会把它的中间人证书判定为不安全。
首先在 Fiddler Everywhere 中导出根证书:打开软件后点击右上角的设置图标,进入「HTTPS」选项卡,勾选「Decrypt HTTPS traffic」,然后在「Actions」下拉菜单中选择「Export Root Certificate to Desktop」,就可以把根证书文件保存到桌面。
接下来根据自己使用的浏览器内核,把证书安装到系统的受信任根证书存储区:
- Windows 系统:双击导出的证书文件,选择「安装证书」,存储位置选「本地计算机」,下一步后选择「将所有证书放入下列存储」,点击「浏览」选择「受信任的根证书颁发机构」,完成安装。
- macOS 系统:打开「钥匙串访问」,把导出的证书拖入「系统」钥匙串,然后双击证书,展开「信任」选项,把「使用此证书时」设置为「始终信任」。
- Linux 系统:不同发行版操作略有差异,以 Ubuntu 为例,把证书复制到 /usr/local/share/ca-certificates/ 目录,然后执行 sudo update-ca-certificates 命令更新证书库。
安装完成后,浏览器就会自动信任由这个根证书签发的所有中间人证书,不会再弹出证书不安全的提示。
二、关闭浏览器的证书透明度校验
部分现代浏览器(比如 Chrome、Edge)会开启证书透明度(Certificate Transparency)校验,即使是可信的证书,如果不在公开的 CT 日志中,也可能被浏览器标记。我们可以通过启动参数关闭这个校验:
以 Chrome 浏览器为例,右键点击桌面快捷方式,选择「属性」,在「目标」字段的原有内容后面添加以下参数(注意前面加一个空格):
--ignore-certificate-errors-spki-list --disable-features=CertificateTransparencyComponent
如果是 macOS 系统,可以在终端中执行以下命令启动 Chrome:
open -a "Google Chrome" --args --ignore-certificate-errors-spki-list --disable-features=CertificateTransparencyComponent
这两个参数的作用是忽略证书相关的错误提示,同时关闭证书透明度组件的校验,避免浏览器因为 CT 日志的问题检测到中间人操作。
三、避免浏览器扩展检测到异常
很多浏览器的安全扩展(比如 HTTPS Everywhere、各类反劫持插件)会检测网络请求是否被篡改,也可能触发检测提示。我们可以暂时禁用这类扩展:
打开浏览器的扩展管理页面,把所有和安全、网络检测相关的扩展都关闭,只保留必要的调试扩展。如果是在无痕模式下调试,可以在扩展管理页面设置「在无痕模式下启用」,只开启需要的扩展,其余保持关闭。
四、处理特殊网站的证书校验
部分金融类、政务类网站会开启 HSTS(HTTP 严格传输安全)策略,即使你安装了根证书,浏览器也会强制要求使用合法证书,甚至直接拦截请求。对于这类网站,可以先清除浏览器的 HSTS 缓存:
以 Chrome 为例,在地址栏输入 chrome://net-internals/#hsts,在「Delete domain security policies」下方的输入框中填入目标网站的域名,点击「Delete」按钮,就可以清除该域名的 HSTS 策略,之后再抓包就不会被拦截。
注意事项
1. 以上操作仅用于本地开发调试,不要用于任何非法用途,窃听他人网络数据属于违法行为。
2. Fiddler Everywhere 更新后可能会重新生成根证书,如果发现浏览器又出现证书报错,需要重新执行证书安装步骤。
3. 调试完成后建议恢复浏览器的原有启动参数,重新开启相关安全扩展,避免日常使用时出现安全风险。
Fiddler_EverywhereHTTPS抓包证书信任浏览器配置证书透明度修改时间:2026-05-23 16:22:00