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/