fiddler进行https的抓包

1、下载最新版fiddler ,强烈建议在官网下载
2、正常傻瓜式安装,下一步,下一步,安装完毕后,先不用急于打开软件。
3、下载并安装:Fiddler证书生成器
4、打开Fiddler,点击工具栏中的Tools—>Options,点击https设置选项,勾选选择项
fiddler进行https的抓包
5、点击Actions,点击第二项:Export Root Certificate to Desktop,如果弹出the root certificate could not be located的弹窗,则可能fiddler版本低了,重新安装fiddler,并且重新安装证书fiddlercertmarker.exe,这时候桌面上会出现证书FiddlerRoot.cer文件,点击OK设置成功,关闭fiddler 。

6、PC端,在浏览器中导入证书FiddlerRoot.cer,以谷歌浏览器为例说明,在浏览器上输入: chrome://settings/ 然后进入高级设置,点击管理证书,对桌面生成的证书进行导入
fiddler进行https的抓包
fiddler进行https的抓包

7、如果fiddler抓取手机上https数据失败,全部显示“Tunnel to…443”解决办法,如下:
与后端数据通信是前端日常开发的重要一环,在与后端接口联调的时候往往需要通过查看后端返回的数据进行调试。如果在PC端,Chrome自带的DevTools就已经足够用了,Network面板可以记录所有网络请求,查看接口数据非常方便。但是在移动端就不能这样干了,手机上是无法直接查看网络请求数据的,这时候就需要一个能记录网络通信的工具,也就是抓包工具。来来回回尝试了好几个,Fiddler算是用起来最爽的了:)

Fiddler是一个免费的web调试代理,它能够记录、查看和调试所有连接上的终端和远程服务器之间的http/https通信。闲话少叙,直接说如何调试手机上的页面。

在电脑上安装Fiddler之后,需要进行一些简单的配置才能对手机上的网络通讯进行捕获。

如果想要捕获手机上的通信数据,首先需要手机连接上Fiddler代理,而Fiddler默认是不允许其他设备进行连接的,点击 Tools > Options…,在 Connections 面板选中 Allow remote computers to connect 允许其他设备连接(此操作需重启Fiddler生效),

fiddler进行https的抓包
然后在手机上连上Fiddler代理,贴上一张IOS配置代理截图:
fiddler进行https的抓包
好了,现在Fiddler已经可以捕获手机页面上的http通信了。但是会发现捕获了很多 Tunnel to 的会话,这是怎么回事呢?原来这些都是https请求,而https是加密传输的,Fiddler默认是不对https进行解密的,如果想对https进行捕获,需要继续进行配置。

首先配置Fiddler对https进行解密,点击 Tools > Options…,在 HTTPS 面板选中 Decrypt HTTPS traffic 解密https通信(此操作需重启Fiddler生效),
fiddler进行https的抓包
然后在手机上需要安装Fiddler根证书,因为Fiddler是通过自己生成的证书对网络请求重新签名进行https会话解密的。证书的安装方法就是在手机自带浏览器中访问FiddlerServer地址(比如10.200.8.155:8888),会出现 Fiddler Echo Service 页面,下载并安装 FiddlerRoot certificate,
fiddler进行https的抓包
1.浏览器输入:电脑的IP地址192.168.60.30:8888,安装证书——安装后应该可以在安全——信任证书——用户(个人)里面看到

2.IOS手机手机设置-通用-关于本机,最后一个受信任证书存储区里面,把fiddler的证书信任下

3.安卓华为手机权限管理——软件——信任此应用

经过这两步设置之后,Fiddler就可以捕获手机与服务器之间的所有http/https通信了。