在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS
抓包工具Fiddler的使用教程(十二):【转载】HTTPS协议
再次回忆一下关键内容:
iddler如何在服务器与客户端之间充当第三者呢?
服务器—>客户端:Fiddler接收到服务器发送的密文, 用对称密钥解开, 获得服务器发送的明文。再次加密, 发送给客户端。
客户端—>服务端:客户端用对称密钥加密,被Fiddler截获后,解密获得明文。再次加密,发送给服务器端。由于Fiddler一直拥有通信用对称密钥enc_key, 所以在整个HTTPS通信过程中信息对其透明。
从上面可以看到,**Fiddler抓取HTTPS协议成功的关键是 根证书 (具体是什么,可Google),这是一个信任链的起点,这也是Fiddler伪造的CA证书能够获得客户端和服务器端信任的关键。**
Fiddler抓取HTTPS设置
注意以下操作的前提是,手机已经能够连上Fiddler,这部分的配置过程简单就不赘述了,可参考:手机如何连接Fiddler 。
如何继续配置让Fiddler抓取到HTTPS协议呢?
(一)给fiddler安装certmaker插件
由于默认的证书不符合Android和iOS的证书要求,所以,需要下载 certmaker 插件,双击安装后,重启fiddler。注意这一步很重要,必须使用certmaker插件,不要使用默认的证书生成器,否则抓不到包。
(备注:经验证,android 和 ios ,如果不安装此插件,也是可以抓到包的,官方的文档上也是用了一个很模棱两可的说明,may ,可能,都不是那么的绝对。如果是抓不到包,此步骤可以作为一个解决方案)
(二)首先对Fiddler进行设置:打开工具栏->Tools->Fiddler Options->HTTPS
对Fiddler进行设置
选中Capture HTTPS CONNECTs,因为我们要用Fiddler获取手机客户端发出的HTTPS请求,所以中间的下拉菜单中选中from remote clients only。选中下方Ignore server certificate errors.
Actions-> Trust Root Certificate。
点击Yes。
点击是,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。
点击是。
点击确定,这样Fiddler证书就已经添加成功了。
查看一下证书,Actions—>open windows certificate Manager
可以证书已经添加进去了,证书名称就是之前提醒大家留意的,【DO_NOT_TRUST_FiddlerRoot】,但是我很搞不懂为什么是两条记录,有待深究啊。
(三)然后,就是手机安装Fiddler证书。
这一步,也就是我们上面分析的抓取HTTPS请求的关键。
操作步骤很简单,打开手机浏览器,在浏览器地址输入代理服务器IP和端口,会看到一个Fiddler提供的页面。
接着点击最下方的FiddlerRoot certificate,这时候点击确定安装就可以下载Fiddler的证书了。
查看手机上的安装证书,设置->系统->安全->信任的证书-用户(位置可能有因为手机的不同多少有些区别):
下载安装完成好后,我们用手机客户端或者浏览器发出HTTPS请求,Fiddler就可以截获到了,就跟截获普通的HTTP请求一样。
如下下图所示,绿色标志的接口都是HTTPS协议: