现在window 系统很多使用 fiddler 抓包,对于 http 来说不需太多纠结,随便设置下就能用,但是抓取 https 就死活抓不了,出现诸如以下问题:
creation of the root certificate was not successful;
Failed to find the root certificate in User Root List;
The Root certificate could not be found;
The root certificate could not be located;
Fiddler 抓取https 显示 Tunnel to ... 443;
等等...
主要原因就是 https 有一个安全证书问题。
第一次安装:
1.下载最新版fiddler ,强烈建议在官网下载:https://www.telerik.com/download/fiddler
2. 正常傻瓜式安装,下一步,下一步,安装完毕后,先不用急于打开软件。
3.下载并安装Fiddler证书生成器:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
4.打开Fiddler,点击工具栏中的Tools—>Options
5.点击https设置选项,勾选选择项
6.点击Actions,点击第二项:Export Root Certificate to Desktop,这时候桌面上会出现证书FiddlerRoot.cer文件,点击OK设置成功,关闭fiddler
7.PC端,在浏览器中导入证书FiddlerRoot.cer,以谷歌浏览器为例说明,在浏览器上输入: chrome://settings/,然后进入高级设置,点击管理证书
8.在受信任的根证书颁发机构,对证书进行导入
9.重新打开fiddler,就可以在电脑上进行https抓包了。
如果不是第一次安装,那么需要重新设置,步骤如下:
1.清除C:UsersAdministratorAppDataRoamingMicrosoftCryptoRSA 目录下所有文件
2.清除电脑上的根证书,WIN+R快捷键,输入:certmgr.msc, 然后回车,查找所有fiddler证书,然后删除。
3.清除浏览器上的证书文件,此处需要仔细查找带有FiddlerRoot的字样,并删除,一般在设置中。以谷歌浏览器为例说明,在浏览器上输入: chrome://settings/
4.打开fiddler,点击工具栏中的Tools—>Options,点击Actions,选择最后一项,Reset All certificates,然后关闭
5.点击 Options 对话框的 Connections 选项,设置端口号以及箭头标记选项。默认是8899,可以自行修改设置
设置手机(ios)
1. 配置代理
步骤: 设置 >> 无线局域网 >> 选择和PC端一样的网络连接,点击进入
>> 翻到最下面,找到HTTP代理(默认:关闭) >>点击“手动”选项
>> 服务器:pc机的 ip(cmd 进入命令行窗口,ipconfig或ipconfig/all可获取) 端口:8888(你在fiddler 中如何设置的,这里就填什么)
>>点击存储
比如 ip:127.0.0.1,port:8080。也可以使用指令 ipconfig 查看电脑 ip,或者在 fiddler 右上角 online 如图直接查看
2.下载&安装证书
步骤:
1)在默认浏览器"Safari"的地址栏中输入 ip:port (ip是pc机的ip,port是fiddler设置的端口)如:192.168.0.10:8888
2)点击“FiddlerRoot certificate” >> 选择【允许】 >> 点击【安装】即可
3)安装后检查证书是否打开
步骤: 设置 >> 通用 >> 关于本机 >>证书信任设置 >> 启用你安装的证书的信任 >> 选择继续
如下图所示,到此完成了fiddler配置手机代理
设置手机(安卓)
1. 配置代理
步骤如 ios 一样
2.下载证书
1)手机浏览器(最好使用自带浏览器 不容易出问题)进入 http://主机名IP:8888,
2)点击“FiddlerRoot certificate”进行下载(通过更改目录,可以查看一下下载到那个目录了)
一般在下载目录:内部存储设置 > download
3.安装证书
步骤:
1)设置 >> 更多设置 >> 系统安全 >> 从存储设置安装 >> 进入下载证书的目录(如下图是下载目录:内部存储设置 > download)即可看到你下载的证书
注意:有的手机是通过usb设备安装的
2)选中证书,点击【确定】,即可开始安装
说明:
证书名称:可以随便起;
凭据用途:默认选择"VPN和应用”,建议选择“WLAN”选项,部分手机需要选择"VPN和应用”,否则https请求好像抓不到。大家可以自己测试下,我的模拟机选择的“WLAN”。
3)点击上图的【确定】按钮,即可完成安装。
这时候理论上就可以抓到手机app的数据包了。
抓包问题:
抓包过程中,发现 Fiddler 抓取的所有的请求数据都是关于 image 的,找了半天才发现是设置了过滤器。。。.
如果手机设置代理后,还无法访问,则进行如下操作:
①关闭防火墙
②打开注册表(window+R,然后输入regedit),在HKEY_CURRENT_USERSoftwareMicrosoftFiddler2下创建一个DWORD,值置为80(十进制)
记得选十进制
③打开fiddler,点击Rules—Customize Rules,用Ctrl+F查找OnBeforeRequest方法添加一行代码
if (oSession.host.toLowerCase() == “webserver:8888”)
{
oSession.host = “webserver:80”;
}
重启fiddler,在手机重新安装证书