Fiddler抓取HTTPS,手机端需要安装fiddler证书

[ 2018-01-17 15:54:03 | 作者: admin ]
字号: | |
http://blog.csdn.net/qq_15283475/article/details/62224149


再次回忆一下关键内容:
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 ,可能,都不是那么的绝对。如果是抓不到包,此步骤可以作为一个解决方案)
attachments/201801/17_160305_20170315110206745.png

(二)首先对Fiddler进行设置:打开工具栏->Tools->Fiddler Options->HTTPS
attachments/201801/17_160233_1.png


对Fiddler进行设置

选中Capture HTTPS CONNECTs,因为我们要用Fiddler获取手机客户端发出的HTTPS请求,所以中间的下拉菜单中选中from remote clients only。选中下方Ignore server certificate errors.
Actions-> Trust Root Certificate。
attachments/201801/17_160315_2.png

点击Yes。
attachments/201801/17_160320_3.png

点击是,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。
attachments/201801/17_160325_4.png

点击是。
attachments/201801/17_160330_5.png

点击确定,这样Fiddler证书就已经添加成功了。
attachments/201801/17_160335_6.png

查看一下证书,Actions—>open windows certificate Manager
attachments/201801/17_161607_7.png

可以证书已经添加进去了,证书名称就是之前提醒大家留意的,【DO_NOT_TRUST_FiddlerRoot】,但是我很搞不懂为什么是两条记录,有待深究啊。
attachments/201801/17_161613_8.png

(三)然后,就是手机安装Fiddler证书。
这一步,也就是我们上面分析的抓取HTTPS请求的关键。
操作步骤很简单,打开手机浏览器,在浏览器地址输入代理服务器IP和端口,会看到一个Fiddler提供的页面。
attachments/201801/17_161618_9.png


接着点击最下方的FiddlerRoot certificate,这时候点击确定安装就可以下载Fiddler的证书了。
查看手机上的安装证书,设置->系统->安全->信任的证书-用户(位置可能有因为手机的不同多少有些区别):
attachments/201801/17_161623_10.png

下载安装完成好后,我们用手机客户端或者浏览器发出HTTPS请求,Fiddler就可以截获到了,就跟截获普通的HTTP请求一样。
如下下图所示,绿色标志的接口都是HTTPS协议:
attachments/201801/17_161629_11.png




=============================================
另外协议不一致会抓不到,这里是由于Fiddler缺少默认的协议导致
Fiddler的Tools——Options——HTTPS
其中有一项Protocols 如下图,增加;tls1.2,注意分号间隔
attachments/201911/06_135926_20190103201504315.png
[最后修改由 admin, 于 2019-11-06 13:59:35]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2473

这篇日志没有评论。

此日志不可发表评论。