经过这么多年的发展,现在Https基本上已经成为数据通信的标配了。虽然Https有他的优点,但是在App开发过程中的调试也是让人头疼的,因为你看不到他具体的数据。本文主要介绍在Android开发过程中如何配置Charles实现Https调试。
Android 6.0及以下的版本
-
在电脑上安装Charles客户端
-
在电脑上安装Charles证书如下图所示:
安装成功后可以在电脑上查看到该证书:

-
接下来是下载证书到手机,

按照上图的提示先将手机代理到电脑

-
浏览器打开 chls.pro/ssl 就能开始直接下载证书了

-
安装证书,这里可能会遇到问题,就是提示无法提出有效的证书,可以通过将证书发送到电脑,再通过电脑直接push到SDcard,再次安装就不会有问题,安装好之后可以在系统内看到证书

-
开启Charles的SSL代理


对于Android 6.0以及以下版本的系统到这里已经可以通过https抓包调试了,对于Android 7.0及以上的版本还需要做一些配置。
Android 7.0及以下的版本
升级到Android 7.0之后想要进行Https抓包,还需要做一点额外的配置。具体配置说明官方文档有做说明,这里只搬运其中一部分。
-
首先你在res文件夹下新建一个xml文件夹,并新建例如"network_security_config"的xml配置文件

-
配置你的网络安全文件

-
在manifest中引用

如上配置之后,就可以在原先配置的基础给Android 7.0的系统进行抓包了。
安全问题
上面的配置虽然能让我们愉快的抓包,这样配置也会导致其他用户也能通过这个方式进行抓包,为了解决这个问题我们可以针对上线版本做一下区分。
-
在src下新建release的包,并在其中新建同样的network_security_config配置文件

-
不过在network_security_config配置文件,我们不需要定义任何东西
这样就可以在上线版本中屏蔽我们的抓包调试。