一、Fiddler配置
配置
-
配置 Connecttions 如下图 选中 Tools ---> Options ---> Connecttions;
-
配置 Https 如下图所示:
-
因为要抓取https的数据 所以还需要生成证书,一路点击确认 Actions ---> Trust Root Certificate :
-
导出证书到桌面, Actions ---> Export Root certificate to Desktop,这时就可以看到桌面生成的证书了,这个证书是可以安装到系统或者浏览器的证书列表里抓取桌面软件或者
网页https数据包的。
二、手机配置
手机配置需要让电脑和手机设备在同一个局域网里面,所以可以再电脑上开个wifi链接手机
-
手机在WIFi列表上长按链接的本地局域网WIFI的名称 选择 修改网络 ---> 高级设置 ---> 代理 ---> 手动(一般Android手机都是这个套路)
-
配置参数如下图:
-
配置完成之后还需要将Fiddler生成的证书安装到手机上,在手机浏览器上面输入代理服务器的IP和端口,例如我电脑的IP :http://192.168.60.107:8888 会看到如下页面:
-
这里还需要注意一点就是在抓移动端数据的时候,用到了开头下载的 Fiddlercertmaker 插件,这个插件可以帮助我们抓取到移动端的数据,直接点击运行,然后重启Fiddler,如下图点击确定即可:
-
至此手机访问网络就可以看到抓到Https网络请求了以及获取的数据:
三、浏览器配置
-
如果我们要抓取web页面的https数据包,请首先配置浏览器代理,例如火狐浏览器,选项 ---> 常规 ---> 网络代理 ---> 设置:
-
然后将上述导出到桌面的证书添加到浏览器的证书列表里面,当然也可以通过访问代理服务器下载证书,进入选项--->隐私与安全---->证书--->查看证书, 如下图:
-
web配置也完成了可以看到访问百度成功了,并且拿到了网页数据:
遇到的问题
-
对于移动端抓包,如果我们按配置,就是抓不到数据包,这里一定要注意是否使用了Fiddlercertmaker这个插件,这个是官方提供的专门抓取Android和IOS Https数据包的插件;
-
还有就是通过以上的配置还是抓取不到数据,那问题很可能就出现在证书上了,这里的方法就是将Fiddler生成的证书全部清除掉重新生成证书,然后重新安装,这里看一下再浏览器抓不到包的问题;
1.) 打开"运行"对话框(Win+R),输入命令:certmgr.msc 回车,打开证书管理并搜索证书,操作(A)--->查找证书---> 删除:
2.) 打开火狐浏览器,进入选项--->隐私与安全---->证书--->查看证书,查找以DO_NOT开头的关于Fiddler的证书,每个选项tab里面都找一找,然后干掉;
3.) 证书清除干净之后我们重新生成证书,执行上述的配置.3和4生成证书步骤,注意:这里生成证书有可能会失败 ,弹出“creation of the root certificate was not successful”提示;
4.) 解决办法:打开"运行"对话框(Win+R)切换到Fiddler安装目录 执行命令:makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
5.)重新生成证书后导入到浏览器即可,而对于移动端,只需要清除移动端的证书重新执行上述手机配置.3步骤 。
-
最后关于抓包的原理 可以参见这个博客:https://www.cnblogs.com/JohnABC/p/5991988.html