Fiddler中文网站 > 热门推荐 > 为什么Fiddler抓不到HTTPS请求 Fiddler解密SSL的原理是什么
为什么Fiddler抓不到HTTPS请求 Fiddler解密SSL的原理是什么
发布时间:2025/07/29 10:56:31

品牌型号:联想ThinkPad X1

系统:Windows10家庭版

软件版本: Fiddler 4

Fiddler在调试网络请求的时候是一个很好用的工具,可是不少人在处理Https请求的时候会遇到各种问题。例如,明明已经启动了Fiddler并且自动开启了代理,浏览器也显示连接正常,但是在Fiddler的会话列表里始终抓不到自己想要跟踪的那条请求记录,有人猜测是软件版本问题,卸载重装后依旧没有什么用,也有人怀疑是系统权限给的不够,折腾了半天修改了防火墙设置,还是没有什么效果。其实,这跟HTTPS协议的加密逻辑以及Fiddler的工作机制有着很深的关联。下面将介绍为什么Fiddler抓不到HTTPS请求,Fiddler解密SSL的原理是什么的相关内容。

一、为什么Fiddler抓不到HTTPS请求

我们的电脑在第一次安装Fiddler后,在默认情况下Fiddler是不会去抓取HTTPS请求的,只会抓取HTTP请求。那么,怎么开启Fiddler捕获HTTPS请求呢?

1、我们在Fiddler的顶部菜单栏找到Tools按钮,点击下拉找到Options子选项并打开Options设置界面,在设置界面中找到HTTPS的标签页。

在HTTPS标签页中开启HTTPS请求
图1:在HTTPS标签页中开启HTTPS请求

2、勾选上Capture HTTPS Connects选项,这个选项代表着“捕获HTTPS连接”。勾选后,我们要继续勾选下面的Decrypt HTTPS traffic解密HTTPS流量,这时Fiddler会弹出一个对话框要求我们安装Fiddler自己的证书,我们点击”是“就可以。

3、如果我们要监听一些不可信证书的HTTPS请求的话,需要点击Ignore server certificate errors选项。设置完毕后,可以考虑重启下Fiddler让配置生效,然后我们打开电脑浏览器随便访问一个网站,当Fiddler左侧的会话窗口中出现很多HTTPS协议的请求时,说明刚刚的配置生效了。

检查Fiddler开启HTTPS请求
图2:检查Fiddler开启HTTPS请求

二、Fiddler解密SSL的原理是什么

我们在浏览器中输入一个网址的时候,数据就会经过层层加密,Fiddler要想看清这些数据,就得完成一套复杂的解密的操作,那么Fiddler解密SSL的原理又是什么呢?下面给大家具体讲讲Fiddler解密SSL的原理。

1、Fiddler能调试HTTP、HTTPS请求,是因为它在服务器和客户端之间建立了代理,进行双重加密连接,实现了对加密数据的拦截和解密。

Fiddler以代理web服务器的形式工作
图3:Fiddler以代理web服务器的形式工作

2、SSL/TLS协议的设计初衷是为了确保客户端和服务器之间数据加密,保证通信隐私。Fiddler要想解密SSL流量就是打破了这种端到端的加密,让用户将系统代理设置为Fiddler后,客户端浏览器的所有请求就会先发送给Fiddler,然后再由Fiddler转发到目标服务器上。

 

Fiddler抓包原理分析
图4:Fiddler抓包原理分析

3、当客户端发送信息的时候,会将SSL版本、加密套件等信息发过来,Fiddler伪装成了目标服务器用自己动态生成的伪造证书去响应。客户端这时会检查证书的签发者是不是在自己信任的根证书库里,如果存在,就会认为是合法的。这也是前面为什么在开启捕获HTTPS请求的时候,要求大家安装证书到本地的原因。

4、当客户端判定Fiddler的证书是合法的之后,就会跟Fiddler协商生成会话密钥,然后将所有的数据用这个密钥加密后进行传输,到这里Fiddler就可以用这个密钥进行加密或者解密了。

以上就是为什么Fiddler抓不到HTTPS请求,Fiddler解密SSL的原理是什么的全部内容了。为什么大家在使用Fiddler的时候总是抓不到HTTPS请求?是因为Fiddler默认是只抓取HTTP请求,如果需要捕获HTTPS请求需要在设置中手动开启。此外Fiddler之所以能解密SSL,是因为Fiddler在客户端和服务器之间搭建了Web代理服务器,伪装成目标服务器接收了客户端发来的请求,客户端发送的时候,会通过跟Fiddler协商好的密钥加密数据后发送给Fiddler,此时Fiddler就可以通过这个密钥进行解密了。

读者也访问过这里:
135 2431 0251