转自:https://blog.csdn.net/kimicsdn/article/details/57089514
阅读本文前您需要了解
1.使用charles拦截https数据包,及其拦截的原理是替换ssl证书。
2.为android设备设置请求代理
正文:
APP使用操作系统api发https请求时对证书的验证一般是通过操作系统 自带的证书验证机制到CA服务器上检查证书合法性,这样就无法用charles来拦截https请求的数据了。
识别到证书不合法时客户端会断开连接。在APP上的表现就是请求失败。用charles拦截数据包的结果就是下面这样的
那么要让操作系统通过证书验证需要修改操作系统的证书验证功能,各种PC浏览器有自己的绕过证书配置的方法,那么在android设备上如何解决这个问题呢?
在ROOT过的ANDROID上可以使用XPOSED的SSLUnpinng 插件来绕过证书验证。
SSLUnpinng下载地址
http://dl-xda.xposed.info/modules/mobi.acpm.sslunpinning_v2_37f44f.apk
单击某个程序就可以hook ssl证书。
再使用charles来拦截数据包就可以看到发送的请求了
安卓手机安装charles安全证书
开发需要进行app抓包,所以搞了个charles,本小组人都用的苹果手机,我用的安卓,哎(穷逼)。
charles需要安装证书,否则手机端抓包会出现unknow。
本次安装使用小米mix2为例。
1.首先 设置好手机的charles代理
2.要使用 UC浏览器 访问 http://charlesproxy.com/getssl (下载到一个你能找到的目录,别下载完你找不到了)
3.系统设置→更多设置→系统安全→加密与凭据→从存储设备安装
4.OK OK OK OK了。