Fiddler抓不到HTTPS请求怎么办?

UI园园 阅读 59

我用 Fiddler 想抓本地开发环境的 HTTPS 接口,但完全看不到请求,HTTP 的能正常抓到。已经点了 Tools > Options > HTTPS 里的 Decrypt HTTPS traffic,也装了证书,但还是不行。

浏览器里访问 https://localhost:3000/api/test 能正常返回数据,但 Fiddler 里一条记录都没有。是不是还要改什么设置?

我来解答 赞 4 收藏
二维码
手机扫码查看
1 条解答
技术岳阳
这个问题我遇到过,主要是证书和代理两个地方没配好。

首先确认一下Fiddler的证书有没有装对。打开Fiddler,点击菜单 Tools → Options → HTTPS,点一下右边的 Actions 按钮,选择 "Export Root Certificate to Desktop",把证书导出。然后在浏览器里导入这个证书为受信任的根证书。

如果你是Chrome浏览器,直接访问 http://localhost:8888/ 会自动跳转到Fiddler的配置页面,点击那个大大的"FiddlerRoot certificate"链接安装。

还有一点很关键:有些版本的Fiddler默认不抓localhost的流量。你需要在Fiddler里点击 Rules → Customize Rules,打开脚本编辑器,找到 OnBeforeRequest 函数,加这么一段:

if (oSession.HostnameIs("localhost") || oSession.HostnameIs("127.0.0.1")) {
oSession["X-OverrideGateway"] = "<proxy>";
}


或者更简单的办法,在浏览器里用机器名或者IP代替localhost访问,比如 https://127.0.0.1:3000/api/test,这样Fiddler就能抓到了。

另外检查一下浏览器代理设置,确保代理指向了127.0.0.1:8888(Fiddler默认端口)。

如果你的接口用了证书固定(certificate pinning),那Fiddler就抓不了了,这种情况要么在代码里暂时禁用pinning,要么换其他工具比如Charles。
点赞
2026-03-18 13:00