Android 7.0(荣耀8) charles不能抓https包问题解决

1. 问题描述

换了了一个荣耀8测试机,按照charles的老套路去安装证书,准备抓https的包,发现死活不成功,charles报错如下:

You may need to configure your browser or application to trust the Charles Root Certificate.

2. 问题解决

查资料发现,这是Android 7.0的问题,在7.0上,用户自己安装的证书是不被app应用信任的(安全性考虑,防止charles这种做接口逆向,监听数据)

解决办法如下(只能抓你自己开发的app的https的包):

1. 在你自己的app下,xml目录下新建一个文件:res/xml/network_security_config.xml ,配置在debug模式下信任用户证书,内容如下:
<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>
2. 在AndroidManifest中使用它:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application  android:networkSecurityConfig="@xml/network_security_config" ... >
        ...
    </application>
</manifest>

好了,这样就ok了

如果觉得本文帮到了你,请留言、点赞,和关注,期待和你一起进步!

参考资料

http://blog.csdn.net/yinyignfenlei/article/details/72782898

https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

推荐阅读更多精彩内容