用charles拦截android设备https,证书无效的解决方法

阅读本文前您需要了解 

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
用charles拦截android设备https,证书无效的解决方法_第1张图片
单击某个程序就可以hook ssl证书。
再使用charles来拦截数据包就可以看到发送的请求了
用charles拦截android设备https,证书无效的解决方法_第2张图片

你可能感兴趣的:(用charles拦截android设备https,证书无效的解决方法)