本文为在霍格沃兹测试开发学社中学习到的一些技术,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~
Charles 抓包HTTPS请求
- 一、MacOS 安装 Chares 证书
- 二、Charles 设置 HTTPS 代理
- 三、客户端(安卓手机)安装 Charles 证书
- 四、Charles 安装证书常见问题解决
- 4.1、证书安装成功了,但还是无法抓取HTTPS的请求
- 4.2、VIVO Y67A 如何安装Charles证书
一、MacOS 安装 Chares 证书
路径:Help > SSL Proxy > Install Charles Root Certificate ,会打开钥匙串访问,如下图所示:

选择 Charles Proxy CA 证书,信任中选择 始终信任 。

证书即可安装成功,并信任。
Tips :如果证书下载安装存在奇奇怪怪的异常,可以点击 Help > SSL Proxy > Reset Charles Root Certificate 重置证书,之后再重新下载 。
二、Charles 设置 HTTPS 代理
路径:Proxy > SSL Proxying Setting >SSL Proxying 勾选 Enable SSL Proxying >OK ,如下图所示:

主导航栏上也有开始/关闭SSL Proxying 的快捷方式,如下图所示:

三、客户端(安卓手机)安装 Charles 证书
路径:Help > SSL Proxy > Install Charles Root Certificate on a Mobile Device or Remote Browser ,出现如下弹框:

客户端连接Charles代理,并访问 chls.pro/ssl 下载证书 。证书下载完成之后,有些手机会主动安装证书,有些则不会。如果不会,则进行以下的操作:
找到手机的设置> 密码与安全 > 系统安全 > 凭据存储 > 从存储设备安装证书 > CA 证书 > 仍然安装 > 选择刚才下载的证书文件。
Tips : 如果通过浏览器下载的证书文件不知道存放在哪里,可以把文件分享到微信或者QQ再保存到本地,通常WenXin 或者 QQ 文件夹比较容易找到
到此为止,操作完成,就可以抓取HTTPS请求了。
四、Charles 安装证书常见问题解决
4.1、证书安装成功了,但还是无法抓取HTTPS的请求
但是会发现Android 7.0 版本以上的手机,抓取的HTTPS请求显示内容为unknown 。这是为什么呢?这是因为Android7.0 之后默认不信任用户添加到系统的CA证书。Charles证书属于用户证书,如下图所示:
那有没有办法解决呢? 当然有,可以参照这个博客的解决方案:Android 7.0 之后抓包 unknown 和证书无效的解决方案,或者就是换一个低版本的安卓手机,这个方法最简单 😬
如果是自家的APP 应用,那么可以再代码层,做如下的调整修改APK包的属性:
<base-config cleartextTrafficPermitted="true"><trust-anchors><certificates src="system" /><certificates src="user" /></trust-anchors>
</base-config>
4.2、VIVO Y67A 如何安装Charles证书
- 通过浏览器下载证书,证书的后缀名为.pem
- 把后缀名 改为 .crt ,(证书的格式真是神奇,如果不识别,那么就改格式再试试)
- 安装证书的路径>设置>安全>从手机存储和SD卡安装>会提示 找不到证书文件
- 把浏览器下载的并改过后缀名的证书 移动到 /手机存储 (storage) 这个文件根目录下,这样才能够被识别 。
- 之后再 从手机存储和SD卡安装 进行证书的安装
文末说明
推荐博文:接口测试经典面试题:Session、cookie、token有什么区别?
















