Charles(或fiddler)抓Android应用包,CA证书安装及代理后APP无法连接上网的解决办法,亲测!

安装Charles

Windows可参考博客:Windows下(Win10)Charles从下载安装到证书设置和浏览器抓包测试,亲测!

Mac版本的下载安装及手机端证书安装可参考这篇博客:Mac下用Charles实现Android http和https抓包

  • 另外提供给大家一个可用的激活码,安装后Help->Register。。。输入即可:
// Charles Proxy License
// 适用于Charles任意版本的注册码,谁还会想要使用破解版呢。
// Charles 4.2目前是最新版,可用。

Registered Name: 	https://zhile.io
License Key: 		48891cf209c6d32bf4

问题及解决

这篇博客主要介绍Charles安装设置OK后,Android手机也设置安装证书OK后,APP不能上网的问题解决办法。
网上一大堆乱七八糟的解决办法,头都炸了,最终还是官网最权威:

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

在官网上我们发现了解释:
在这里插入图片描述

解释方法

上面官网给出的解释是说,从安卓N版本开始,我们如果想要对Android系统的应用进行抓包就需要在应用中添加信任Charles证书的配置:
先在App中添加配置文件res/xml/network_security_config.xml

<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>
  • 再在应用程序的manifest中添加如下的引用
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config" ... >
        ...
    </application>
</manifest>

这样配置完成,重新打包安装就可以了,App即可正常上网,可通过Charles进行抓包了,不过这个配置可能需要App的开发人员进行配合。

总结

因为安卓版本的不同,造成安卓系统的权限可能也不同,遇到上述问题时可先查看我们的安卓版本,N版本之后的大概率都是因为App配置的原因造成,比如我的设备是安卓O版本的,比N版本还要新,所以也就出现的这个问题;按照官网的方法后,完美解决!爽!

补充

  • 如何查看安卓版本

设置-系统-关于手机,找到Android版本一栏,手指在上面不停的点击几下就会弹出当前设备的安卓版本了
在这里插入图片描述

发布了101 篇原创文章 · 获赞 49 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览