Android配置Charles实现Https调试

经过这么多年的发展,现在Https基本上已经成为数据通信的标配了。虽然Https有他的优点,但是在App开发过程中的调试也是让人头疼的,因为你看不到他具体的数据。本文主要介绍在Android开发过程中如何配置Charles实现Https调试。

Android 6.0及以下的版本

  1. 在电脑上安装Charles客户端

  2. 在电脑上安装Charles证书如下图所示:

    安装成功后可以在电脑上查看到该证书:

  3. 接下来是下载证书到手机,

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

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

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

  6. 开启Charles的SSL代理

对于Android 6.0以及以下版本的系统到这里已经可以通过https抓包调试了,对于Android 7.0及以上的版本还需要做一些配置。

Android 7.0及以下的版本

升级到Android 7.0之后想要进行Https抓包,还需要做一点额外的配置。具体配置说明官方文档有做说明,这里只搬运其中一部分。

  1. 首先你在res文件夹下新建一个xml文件夹,并新建例如"network_security_config"的xml配置文件

  2. 配置你的网络安全文件

  3. 在manifest中引用

如上配置之后,就可以在原先配置的基础给Android 7.0的系统进行抓包了。

安全问题

上面的配置虽然能让我们愉快的抓包,这样配置也会导致其他用户也能通过这个方式进行抓包,为了解决这个问题我们可以针对上线版本做一下区分。

  1. 在src下新建release的包,并在其中新建同样的network_security_config配置文件

  2. 不过在network_security_config配置文件,我们不需要定义任何东西

    这样就可以在上线版本中屏蔽我们的抓包调试。

转载于:https://juejin.im/post/5c750c6fe51d455c8c66a2e4

你可能感兴趣的:(Android配置Charles实现Https调试)