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

编程知识 更新时间:2023-04-20 08:18:21

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

更多推荐

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

本文发布于:2023-04-15 20:59:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/d2f9d22a9fb8a133b6cfd6f794d7518c.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:解决办法   证书   fiddler   Charles   Android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 78989文章数
  • 14阅读数
  • 0评论数