前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题

Charles抓包神器的使用,完美解决抓取HTTPS请求unknown问题

原创
作者头像
南山竹
发布2024-06-12 18:01:47
1360
发布2024-06-12 18:01:47

在 Windows 上可能比较好用的抓包工具是 fidder,当然,在 Mac 上也有一款抓包神器不输 fiddler,那就是今天的主角—— Charles。

软件的安装过程就不介绍了,只要自己下载好了软件,安装过程就是傻瓜式的操作,非常简单。

今天主要介绍的是如何配置 HTTP 和 HTTPS。有不少童鞋在抓取 HTTPS 请求时,会出现 unknown 无法解析的情况,那么,遇到这种情况,我们该如何处理呢?

这篇文章将为你介绍整个配置过程,来,继续往下看吧!

我这里演示的是: Charles 版本为:4.6.6undefinedMacOS 系统版本为:Sonoma 14.5

iOS 系统版本为:17.3

安装证书

安装证书这一步是抓取 HTTPS 请求的关键所在,包括 PC 端和手机端都需要安装证书

PC 端

我们需要先打开 Charles 软件,然后在菜单栏中依次选择:Help -> SSL Proxying -> Install Charles Root Certificate 然后直接点击,将证书安装到我们的电脑上。

安装证书
安装证书

将证书安装完毕之后,我们需要打开钥匙串访问

打开「钥匙串访问」
打开「钥匙串访问」

当我们打开钥匙串访问后,找到「系统钥匙串」-> 「系统」-> 「证书」-> 「Charles Proxy CA……」

找到证书
找到证书

我们可以看到这个证书默认是不被信任的,此时我们需要将其设置为信任。

设置证书为“始终信任”
设置证书为“始终信任”
  1. 我们直接对着“Charles Proxy ……”开头的证书直接双击然后就会出现一个弹窗;
  2. 此弹窗中有一个信任,默认是闭合的,此时我们需要点击一下,进行展开;
  3. 展开后我们可以看到有一项“使用此证书时”,我们将其改为始终信任
  4. 然后关闭此弹窗就可以了。不放心的童鞋可以再次打开这个弹窗做一个验证。
需要输入密码
需要输入密码

当我们关闭弹窗的时候,需要我们验证密码。

已经标记为“受所有用户信任”
已经标记为“受所有用户信任”

当我们再次查看证书时,我们可以看到此时已经是受所有用户信任,此时电脑端的证书就已经安装完成了。

接下来,我们安装手机端的证书:

手机端

我这里以 iOS 设备为例,Android 手机可能会有所差异,但是我想应该安装步骤都是大差不差的,各位做一个参考也行。

在手机上安装证书,依然需要先打开 Charles 软件,然后在菜单栏中依次选择:Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser 然后直接点击。

手机上安装证书
手机上安装证书

当我们点击之后会有一个弹框提示,大致内容如下:

手机端安装时,会有弹窗提示
手机端安装时,会有弹窗提示

大致的意思是说需要我们在手机上设置 HTTP 代理,代理地址为 192.168.0.102:8888 设置好后再通过浏览器访问 chls.pro/ssl 地址并下载安装证书。

并且还需要注意:如果是 iOS 10 及其以后的版本时,还需要进入「设置」-> 「通用」->「关于本机」-> 滑到最底部「证书信任设置」,并启用 Charles 证书为可信任证书。

并且还需要注意的是,你一定需要将手机和电脑连接在同一个局域网内,如果你的电脑是笔记本的话,就是说你的电脑和手机连接的是同一个 Wi-Fi。另外这里我的电脑端局域网 IP 地址为 192.168.0.102 你的可能和我的不一样,这个也是正常现象,以弹窗中的 IP 地址为准。

接下来,我们需要在手机上操作:

  1. 打开「设置」找到「无线局域网」这里一定需要注意,此时你手机上连接的 Wi-Fi 一定和电脑所在的网络在同一个局域网内,不然就白搭了。
  2. 点击你所连接的 Wi-Fi,滑到最底部会有一个「配置代理」,点击打开,选择「手动」。
  3. 然后在“服务器”位置输入192.168.0.102,“端口”位置输入8888,然后点击右上角的「存储」。
手机上配置代理
手机上配置代理

然后去打开 Safari 浏览器(其他浏览器不一定可以唤起安装证书的弹窗),输入地址 chls.pro/ssl 打开页面,此时会自动唤起安装描述文件的弹窗。

如果此时你发现并没有唤起安装描述文件的弹窗时,你需要回到你的电脑上,可能会有一个类似以下的弹窗,你需要点击一下Allow,这是你的手机连接到了 Charles 。当你点击了 Allow 之后再去手机 Safari 浏览器上刷新一下应该就会有安装描述文件的弹窗了。

需要在电脑上允许一下
需要在电脑上允许一下

当出现安装描述文件的弹窗后,会告知你现在正在下载一个配置描述文件,你直接点击允许就好了。

手机上下载配置描述文件
手机上下载配置描述文件

当下载好证书之后,我们需要前往:「设置」->「通用」-> 「VPN与设备管理」然后就可以看到“已下载的描述文件” Charles Proxy CA…… 进行点击进去,然后看到右上角会有一个「安装」按钮,点击安装即可。

安装配置描述文件
安装配置描述文件

之前也说到了,如果是 iOS 10 及其以后的版本时,还需要在「证书信任设置」,并启用 Charles 证书为可信任证书,这点你按照你的系统版本按需来做就好了。

不过一般来说,现在很少有低于 iOS 10 的手机还在跑了吧?其实这一点也是很多人虽然安装完了证书,但是发现依然抓取 HTTPS 请求时认为 unknown 的原因。 所以,一定要记得去信任一下证书,这点非常重要!

开启信任证书
开启信任证书

现在我们证书已经安装好了,但是还需要简单配置一下 Charles。

配置 Charles

配置代理端口

直接点击菜单栏中的「Proxy」 ->「Proxy Settings」

配置代理
配置代理

还记得上面我们在手机上设置代理的时候那个 8888 端口吗?如果你想自定义代理端口,可以直接在这个位置进行更改。不改问题也不大,自己按照实际情况而定。

更改代理端口
更改代理端口

配置 SSL 代理设置

直接点击菜单栏中的「Proxy」->「SSL Proxying Settings」

配置SSL代理设置
配置SSL代理设置

这里有一个非常重要的配置 SSL Proxying Settings,我们需要确保勾选上了「Enable SSL Proxying」并且还需要添加「Include」,否则即使我们添加了证书,抓取 HTTPS 时还是会出现 unknown

配置 SSL 代理设置
配置 SSL 代理设置

Include 和 Exclude 就是字面上的含义,分别代表包含和不包含,这里我在 Include 处设置两个星号 * 的含义是:包含所有的域名和端口。你也可以按照你自己的实际情况来设置。

好了,现在该配置的都已经配置完了,剩下的就可以愉快的玩耍啦。

另外,听说 Android 7.0 之后默认不信任用户添加到系统的 CA 证书,也就是说对基于 SDK24 及以上的 APP 来说,即使你在手机上安装了抓包工具的证书也无法抓取 HTTPS 请求。那么如何解决这个问题呢?当前我手上没有 Android 手机,也无法去测试,这个问题就留给有 Android 手机的用户来解决吧。不过,我想这个问题应该也已经有了解决方案,如果你知道解决方案,也希望一起分享分享。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装证书
    • PC 端
      • 手机端
      • 配置 Charles
        • 配置代理端口
          • 配置 SSL 代理设置
          相关产品与服务
          VPN 连接
          VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档