品牌型号:联想ThinkPad X1
系统:Windows10家庭版
软件版本:Fiddler4
在目前日益频繁的网络数据传输中,Fiddler作为我们研发人员的常用工具,已经成为工作中不可缺失的一部分。Fiddler能够协助我们快速地找出受信任的根证书颁问题,也能够完成模拟网络延时等测试,同时还可以进行网络数据修改。它的作用还有很多,下面就给大家介绍一下Fiddler抓取HTTPS的原理,Fiddler抓取HTTPS的请求的数据应该怎么做的相关内容。
一、Fiddler抓取HTTPS的原理
关于Fiddler抓取HTTPS的原理,有伙伴可能会问,Fiddler开启后,不是自动抓包吗?这样说也没毛病,但在默认的配置下,Fiddler抓到的只是HTTP数据。HTTP是常规的数据协议,而我们HTTPS是在HTTP基础上进行加密处理的数据协议。

Fiddler在网络传输中充当着代理的角色,它充当着服务器接收着来自客户端的加密数据,客户端会验证服务器证书的合法性,若直接拦截会导致证书验证失败。
所以这个时候Fiddler会生成一个自签名的根证书(DO_NOT_TRUST_FiddlerRoot),Fiddler将伪造的证书返回给客户端。由于客户端信任Fiddler的根证书,会认为伪造的服务器证书是合法的,再继续开始数据的传输,这就是Fiddler抓取HTTPS的原理。
二、Fiddler抓取HTTPS的请求的数据应该怎么做
上面我们已经了解了Fiddler抓取HTTPS的原理,接下来我们就进一步学习一下应该怎么抓取HTTPS请求的数据。
这边我先启动Fiddler抓包工具,然后我们可以看到常规配置下Fiddler抓取的都是HTTP数据协议。

现在我们想要抓取HTTPS的请求数据,那就需要在Fiddler上做一些特殊配置。先在菜单栏中找到Tools(工具)选项,在展开的栏中找到Options(选项)并点击进入。

在Options(选项)跳出的页面里,切换到HTTPS(超文本传输安全协议)这一栏,在该栏下选择Capture HTTPS CONNECTs(捕获HTTPS连接)。

这样一来,Fiddler已经初步具备了抓取HTTPS的条件,但刚刚我们前文也有提过,HTTPS属于加密的协议,我们还需生成一个自签名证书来获取客户端信任。在刚刚的界面中将Decrypt HTTPS traffic(解密HTTPS流量)也勾选上,会弹出唯一的根证书生成界面,选择YES安装上。

当安装完成之后,仍然在HTTPS窗口,找到左上角的Actions(动作)选项,点击展开后找到第三栏Open Windows Certificate Manager(打开Windows证书管理器)进行检查。

紧接着桌面就会弹出证书管理器界面,我们按顺序先进入到受信任的根证书颁发机构这个文件夹,然后会展开证书这个夹子,夹子里的DO_NOT_TRUST_FiddlerRoot文件,就是我们所安装的根证书。

做完以上这些步骤,Fiddler就可以正常地抓取HTTPS数据了。重启一下Fiddler验证看一下,如果Fiddler抓的包里面,不仅有HTTP还有HTTPS数据的话,就意味着证书安装成功。

以上就是Fiddler抓取HTTPS的原理,Fiddler抓取HTTPS的请求的数据应该怎么做的全部内容了。如果还是无法抓到HTTPS数据,我们可以从以下几点进行分析。先检查是否正确安装证书或者是安装的证书不受信任,可以重新安装证书,确保证书在“受信任的根证书颁发机构”中。也可以检查一下是否是代理配置错误,检查代理设置是否为 127.0.0.1:8888(8888为默认端口),并且关闭其他的代理工具。
