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

软件测试 同时被 3 个专栏收录
40 篇文章 1 订阅
4 篇文章 0 订阅

安装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版本一栏,手指在上面不停的点击几下就会弹出当前设备的安卓版本了
在这里插入图片描述

  • 4
    点赞
  • 0
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页

打赏作者

TesterAllen

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值