包工具多种多样,比较好使的还是Charles和Fiddler,下面就简单的介绍下HTTPS的相关原理并以Charles为例来介绍下如何抓取HTTPS协议的包
1.下载charles
可以去charles官网下载,下载地址:http://www.charlesproxy.com/download/ 根据自己的操作系统下载对应的版本,然后进行安装,然后打开charles工具
2.设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器)
1).查看默认端口 Proxy->Proxy Settings 在这个页面会看到HTTP Proxy的默认端口是8888 我们不需要修改,只需要知道有这个值就行
2).查看当前电脑的ip ,查看方式cmd ,输入命令 ipconfig, 例如我这里的是:172.16.91.231
3).知道了默认端口跟ip地址,我们就可以手机上设置代理了。设置步骤我录制了gif动画。(我用的是genymotion模拟器,真机也是一样的)
完成了以上两个步骤就可以抓到http请求的数据了,效果图如下:
如果遇到unknown的情况是无法处理https,需要安装证书,进行处理,请看面的步骤
此后步骤适用于抓取https协议的请求
3.设置charles ssl代理,抓取https协议的包
Proxy->SSL Proxy Settings 弹出一个ssl代理设置界面
1).Enable SSL Proxying复选框打上勾
2).添加你想要的设置代理的域名,端口默认443
设置过后效果图如下:
4.手机下载ssl证书
1).Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser...
会弹出一个提示框,如下显示:
浏览器输入这个地址即可下载证书,记住要用Android或iOS自带的浏览器. 地址是:http://chls.pro/ssl ,有个注意的点,iOS需要手动去开启证书,否则证书不起作用
2).然后按照他的提示安装证书即可.
做完第三步跟第四步就可以抓包https数据了。
不能抓取包数据的情况:
1、遇到代码内部加减密的情况
2、使用插件的情况
下面是加减密的请求的截图,未获取接口名称入参与出参都是加密后的非明文
参考文章:http://www.cnblogs.com/yishaochu/p/5078618.html