1. 项目概述:为什么我们需要抓取HTTPS请求?
做开发、测试或者安全分析的朋友,对抓包工具肯定不陌生。Fiddler作为一款老牌且功能强大的HTTP/HTTPS调试代理工具,几乎是这个领域的“瑞士军刀”。但很多新手,甚至一些有一定经验的朋友,在初次尝试用Fiddler抓取HTTPS流量时,往往会卡在证书安装和配置这一步,看着浏览器或App里报出的各种安全警告一头雾水。
这背后的核心原因在于HTTPS协议本身的设计。HTTPS在HTTP的基础上加入了SSL/TLS加密层,旨在确保客户端(如你的浏览器)和服务器之间的通信是私密且未被篡改的。当你直接访问一个HTTPS网站时,你的浏览器会和服务器进行一次“握手”,验证服务器证书的合法性,然后建立一个加密通道。Fiddler想要充当中间人(Man-in-the-Middle, MITM)来解密并查看这些加密流量,就必须取得客户端的信任。怎么取得信任?就是让客户端(你的电脑、手机)安装并信任Fiddler自己生成的“根证书”。这样,Fiddler就可以用这个根证书为任何一个它拦截的HTTPS网站签发一个“假”的证书,客户端因为信任了根证书,就会接受这个“假”证书,从而Fiddler就能成功解密流量。
所以,设置Fiddler抓HTTPS,本质上是一个“取得系统信任”的过程。这个过程不仅涉及Fiddler软件本身的配置,更关键的一步是在操作系统或应用程序的证书存储区里,手动添加并信任Fiddler的根证书。搞不定这一步,你看到的HTTPS请求要么是一片乱码,要么根本抓不到。接下来,我就把从软件设置到证书安装,再到常见问题排查的完整流程和核心细节拆解清楚。
2. Fiddler抓取HTTPS的核心配置详解
2.1 软件内部HTTPS解密设置
安装好Fiddler Classic(这是官方免费版本,功能齐全,我们通常说的Fiddler就是指它)后,第一步不是急着去抓包,而是先进行核心配置。打开Fiddler,顶部菜单栏依次点击 Tools -> Options ,会弹出配置窗口,这里我们重点关注 HTTPS 标签页。
在这个标签页里,你会看到几个关键的复选框:
- Capture HTTPS CONNECTs : 这个一定要勾选。HTTPS通信始于一个
CONNECT请求,它建立了到目标服务器的隧道。不捕获这个,后续的加密数据包Fiddler就无法介入。 - Decrypt HTTPS traffic : 这是最核心的选项 ,必须勾选。它的作用就是指示Fiddler对HTTPS流量进行解密。勾选后,Fiddler会弹出一系列警告,告诉你它将安装证书以实现MITM,点击“Yes”或“确定”继续。
- Ignore server certificate errors : 这个建议勾选。有些服务器的证书可能过期、域名不匹配或由不被信任的机构签发,勾选此项可以让Fiddler忽略这些错误继续解密,避免因服务器证书问题导致抓包中断。但在生产环境或安全测试中,有时需要取消勾选以发现真实的证书问题。
在下方还有一个 Actions 按钮,点击后有几个重要操作:
- Export Root Certificate to Desktop : 将Fiddler的根证书(
FiddlerRoot.cer)导出到桌面。这是后续手动安装到系统或其他设备的关键文件。 - Open Windows Certificate Manager : 直接打开Windows的证书管理控制台,方便你查看或删除证书。
- Reset All Certificates : 如果证书配置混乱导致抓包异常,可以尝试此功能重置Fiddler的证书体系,然后重新配置。
配置完成后,点击“OK”。此时,Fiddler 可能 会尝试自动将它的根证书安装到Windows的“受信任的根证书颁发机构”存储区。对于很多Windows系统,特别是你以管理员身份运行Fiddler时,这一步会自动完成。但自动安装并非100%成功,这也是很多问题产生的根源。我们绝不能假设它成功了,必须进行手动验证和安装。
2.2 系统根证书的手动安装与验证(Windows)
即便Fiddler提示安装成功,手动检查并确保证书安装到位也是最稳妥的做法。按下 Win + R ,输入 certmgr.msc 并回车,打开证书管理控制台。
在左侧面板,依次展开 “受信任的根证书颁发机构” -> “证书” 。在右侧的证书列表里,你需要找到一个名为 “DO_NOT_TRUST_FiddlerRoot” 或类似名称的证书,颁发者也是它自己。找到它,就说明证书已成功安装到系统根信任区。
注意 :证书名称里的“DO_NOT_TRUST”是Fiddler故意为之的警告,提醒你这个证书仅用于调试,不要在生产环境中信任它。


5464

被折叠的 条评论
为什么被折叠?



