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

简介: 本文介绍了在 Mac 上使用的 HTTP 和 HTTPS 抓包工具 Charles 的配置方法。首先,强调了安装证书对于抓取 HTTPS 请求的重要性,涉及 PC 和手机端。在 PC 端,需通过 Charles 软件安装证书,然后在钥匙串访问中设置为始终信任。对于 iOS 设备,需设置 HTTP 代理,通过电脑上的 IP 和端口访问特定网址下载并安装证书,同时在设置中信任该证书。配置 Charles 包括设置代理端口和启用 SSL 代理。完成这些步骤后,即可开始抓包。文章还提及 Android 7.0 以上版本可能存在不信任用户添加 CA 证书的问题,但未提供解决办法。

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

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

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

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

我这里演示的是:
Charles 版本为:4.6.6
MacOS 系统版本为: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 Proxying Settings,我们需要确保勾选上了「Enable SSL Proxying」并且还需要添加「Include」,否则即使我们添加了证书,抓取 HTTPS 时还是会出现 unknown

配置 SSL 代理设置

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

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

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

相关文章
|
4月前
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
341 20
|
10月前
|
安全 API 网络安全
使用OkHttp进行HTTPS请求的Kotlin实现
使用OkHttp进行HTTPS请求的Kotlin实现
|
Web App开发 存储
常见抓包工具配置抓取HTTPS
常见抓包工具配置抓取HTTPS
1239 1
|
11月前
|
安全 网络安全 数据安全/隐私保护
HTTPS 请求中的证书验证详解(Python版)
HTTPS 请求中的证书验证详解(Python版)
652 0
|
4月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
119 18
|
4月前
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
104 19
|
4月前
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
154 1
|
5月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
260 3
|
7月前
|
网络协议 安全 网络安全
HTTP与HTTPS协议入门
HTTP协议是互联网的基石,HTTPS则是其安全版本。HTTP基于TCP/IP协议,属于应用层协议,不涉及数据包传输细节,主要规定客户端与服务器的通信格式,默认端口为80。
212 25
HTTP与HTTPS协议入门
|
12月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性