Android手机如何用Charles抓包HTTPS接口

对Charles的安装和使用,这里就不重复介绍了,之前有介绍Charles工具。

本文重点介绍在Android手机上如何配置抓包环境

1.获取Charles配置

去Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser 查看配置。

Android手机如何用Charles抓包HTTPS接口_第1张图片

Android手机如何用Charles抓包HTTPS接口_第2张图片

2.将手机和电脑连上同一个局域网

3.为手机网络设置手动代理

ip和端口参数已经在第一步获取

Android手机如何用Charles抓包HTTPS接口_第3张图片

4.用手机浏览器下载证书安装

浏览器进入chls.pro/ssl下载证书,下载的.pem格式证书。当设备无法识别时,需要手动将后缀名改为.crt,然后到浏览器的下载管理中选择安装就可以了。

Android手机如何用Charles抓包HTTPS接口_第4张图片

安装后,到设置 -> 安全 -> 信任的凭证 可以看到刚安装的证书

Android手机如何用Charles抓包HTTPS接口_第5张图片

5.抓包

Charles中右键对应HTTPS,选择Enable SSL Proxying启动代理。然后清空Structure,重新请求接口就能看到抓包的数据。

Android手机如何用Charles抓包HTTPS接口_第6张图片

到这里,你会发现并不是所有HTTPS都能抓取,Android7.0 之后默认不信任用户添加到系统的CA证书。

解决方案:

  • 官方解决方案:https://developer.android.google.cn/training/articles/security-config.html
  • 问题解决博文:https://blog.csdn.net/mrxiagc/article/details/75329629
  • 将抓包软件的证书安装成系统证书(需ROOT)

这里就不展开了,除非你要搞逆向。

6.对自己的项目抓包

针对我们自己的Android项目,要抓包HTTPS我们可以在网络完全配置中进行设置。

到 res -> xml 创建一个network-security-config.xml文件,配置如下。


    
        
            
            
        
    

然后,到清单文件为application配置networkSecurityConfig。



 
    
 
    
 
    
 

注意:在开发设置 cleartextTrafficPermitted="true" 来允许明文流量,便于我们抓包。但在发布应用时,为了提高应用的安全性,通常建议禁用明文流量。
 

你可能感兴趣的:(Android,https,Charles)