[Android] 7.0以上Android手机连接Charles无法抓取HTTPS请求的坑

    配置Charles抓取HTTPS的方法就不说了,网上一搜一大堆,无非是配置下证书,打开下SSL代理连接。最近业务开发需要抓取HTTPS请求,按照网上的教程在自己的华为P9(Android O)上一顿配置diao用没有,然而同组小哥的乐视就可以,一顿查之后发现是Android N之后证书信任的问题。

从Android Nougat(7.0)开始,谷歌改变了网络安全策略。
自签的CA证书将默认不被TLS/SSL连接信任,这意味着HttpCanary可能无法抓取HTTPS的明文数据。

解决方法:

在项目的AndroidManifest.xml中添加networkSecurityConfig:



    
        ...
    

network_security_config文件放在 res/xml/ 目录下面:



    
        
            
            
        
    

关于网络安全策略的详情文档:https://developer.android.com/training/articles/security-config

你可能感兴趣的:(Android)