Charles 抓包 Https 配置指南

一、说明

在做客户端开发的时候大家一定经常用到抓包工具去抓接口排查调试,非常的简捷方便。Charles 是一款非常好用的抓包工具,我在日常开发中也很喜欢用其进行接口联调、问题排查。

以前的客户端接口请求大多是 Http 传输的,抓接口直接配置代理就可以了,而现在很多应用都改为使用 Https 加密传输,用 Charles 直接查看完全是一堆乱码。 Charles 到底可以抓包 Https 吗 ? 作为一款强大的抓包工具,当然是可以的,但是需要做一些配置才可以。

二、iOS 配置

声明一下:我的 Charles 是汉化版的,大家如果是英文版的也可以对比名称自己找对应的选项去操作。

第1步:在电脑上安装 Charles 证书

操作后显示:

上面有提示“此根证书不被信息”,这个不用理会。

第2步:手机安装证书

操作后显示:

接下来根据提示,在手机上操作:

  1. 配置代理
  2. 打开浏览器在地址栏输入 chls.pro/ssl,会提示下载证书
  3. 步骤截图(iOS 10)

        

如果是 iOS11,有2点区别:

  1. 不像上面的截图自动跳转到证书安装页面,需要进入系统设置的首页,在列表的靠上位置会多出一个“描述文件”选项,点击一下即可进入证书安装页面。
  2. 安装完需要手动信任一下证书:
    1. 设置
    2. 通用
    3. 关于本机
    4. 证书信任设置
    5. charles proxy custom root certificate
    6. 信任该证书

第3步:Charles 配置抓包

SSL 代理设置:

记录设置:

添加要代理的接口:

配置完这些就可以正常抓取 https 接口了。

三、Android 配置

Android 配置和 iOS 配置原理相同、大同小异。

我以小米手机为例说一下步骤:

  1. Charles 安装证书
  2. 系统设置中提前配置好代理
  3. 在浏览器中输入地址下载证书文件,下载完后可以在浏览器的下载结果中查看到该文件,然后记一下存储地址,等下要用
  4. 系统设置 -> 更多设置 -> 系统和安全 -> 从存储设备安装 -> 通过步骤2中记下的路径找到文件并选择 -> 输入密码安装
  5. 安装完后 Charles 配置该有的 url
  6. 完成以上步骤后就可以抓包了

其实上面我把安装证书和 Charles 配置又说了一遍,如果是电脑上已经安装过证书,也配置过 url ,直接操作步骤2、3、4就可以了。

此处注意:我在华为手机上下载证书是正常的,而在小米手机上下载的证书却完全不可用,之后我是尝试把华为手机上的证书传给小米手机去使用的。

这样 Android 端的 https 配置就搞定了。

四、问题:Android 7.0 配置后不可用

在 Android 7.0 及以上的系统中,每个应用可以定义自己的可信 CA 集。默认情况下,应用只会信任系统预装的 CA 证书,而不会信任用户安装的CA证书。通过 Charles 安装的证书恰恰正属于用户安装的 CA 证书,因此会被视作不安全的证书。

解决方案:

配置文件:AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application 
        android:networkSecurityConfig="@xml/network_security_config"
    ... >
    ...
    </application>
</manifest>

配置文件:res/xml/network_security_config.xml

<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" overridePins="true" /> <!--信任系统证书-->
            <certificates src="user" overridePins="true" /> <!--信任用户证书-->
        </trust-anchors>
    </base-config>
</network-security-config>

五、参考文献

  1. Charles抓包https
  2. Android7.0及以上charles抓包提示证书无效的解决方法
发布了179 篇原创文章 · 获赞 91 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/haha223545/article/details/99878378
今日推荐