轻松搞定Charles的HTTPS抓包(iOS13可用)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了轻松搞定Charles的HTTPS抓包(iOS13可用)相关的知识,希望对你有一定的参考价值。

参考技术A 抓包工具在APP开发过程中使用非常频繁,对开发者理解网络传输原理以及分析定位网络方面的问题非常有帮助。

笔者一直比较喜欢Wireshark,但由于最近的项目是短连接项目,Wireshark太过重量。所以笔者选择Charles进行App的抓包,配置也更加简单。

iOS手机,连接与电脑同一个WiFi。然后点击“设置->无线局域网->连接的WiFi”,设置HTTP代理。

进入wifi的配置设置。

增加代理信息并保存。

服务器为电脑IP地址:如192.168.0.102
端口:8888

打开Charles。

手机配置成功后会弹出提示,点击“Allow”即可。

此时,HTTP的网络包已经可以查看,但是HTTPS的依旧不可以。

想要HTTPS抓包,首先要按照顺序完成上面的HTTP的配置。

点击上面选项后,Charles会弹出提示。

在手机Safari浏览器输入地址 "chls.pro/ssl",出现证书安装页面,点击安装

点击安装。

对于iOS10之后的系统版本,需要进行下面的操作——对根证书进行信任操作。

开启“SSL Proxying”

点击“SSL Proxying Setting”,增加SSL拦截规则,像笔者比较懒,就如图将所有443端口的请求都进行了拦截。

不需要重启Charles,此时开始,所有的HTTPS的请求也是可见的了。

抓包结束后一定要关闭wifi的代理配置,否则Charles关闭后,手机将无法用这个wifi上网。

iOS开发抓包工具之Charles使用

iOS开发抓包工具之Charles使用 

在iOS开发过程中,抓包是常见的必备技能之一。这里我们主要介绍一下Mac下的抓包利器Charles(文中版本:4.0.1)。它可以非常方便的抓取Http/Https请求,从而提高我们的开发效率。本文中不提供破解版安装使用说明(网上一大堆),建议使用正版,官方dmg下载地址:点击此处

一、如何抓取Http请求?

(1)安装完成之后打开Charles,设置端口号:8888(端口号可以自定义)。

选择“Proxy”菜单下的“Proxy Settings”子菜单。打开“Proxy Settings”对话框:

技术分享

在“Proxy Settings”对话框中设置端口号:8888,并勾选“Enable transparent Http proxying”项:

技术分享

(2)打开“网络偏好设置”查看电脑IP地址:

技术分享

(3)设置手机网络(iOS):

技术分享

(4)打开需要抓包的手机APP,初次使用时,Charles会弹出确认对话框,直接点击”Allow”按钮后就可以看到对应的请求数据。

温馨提示:抓完包之后,请把手机WiFi中的HTTP代理关闭。不然可能造成iOS无法访问网络。

二、如何抓取Https请求?

(1)电脑安装SSL证书

选中Charles,在“Help”菜单中选择—>“SSL Proxying”—>“Install Charles Root Certificate”会自动打开钥匙串访问窗口:

技术分享

在“钥匙串访问”窗口中找到对应的证书,双击打开。设置“使用证书时”项为:始终信任。

技术分享

填写管理员密码更新设置。

技术分享

(2)手机安装证书(使用Safari方式):

请确保手机已经设置好手动代理(具体方式参照上面HTTP抓包设置方式)。

在手机Safari浏览器中输入下面的链接地址:http://charlesproxy.com/getssl。手机会自动跳转安装“Charles Proxy SSL Proxying”描述文件。如下图所示:

技术分享

点击“安装”按钮,会提示输入手机密码,然后确认安装。

技术分享

以上便完成手机SSL证书安装步骤。

(3)在Charles工具栏上点击设置按钮,选择“SSL Proxying Settings…”:

打开“SSL Proxying Settings”对话框:

技术分享

点击“Add”添加:Host中输入*表示匹配所有主机。https默认端口号:443。

技术分享

添加完成显示结果如下:

技术分享

(4)测试:

安装手机证书之前测试结果如下图所示:

技术分享

安装手机证书之后测试结果如下图所示:

技术分享

针对Charles代理访问https有些正常有些失败的处理方法(一般https只要打开charles 的”Enable SSL Proxying”代理就能访问):点击此处

三、如果没有Wifi,我们还可以这样抓包?(本文不做详解)

(1)抓包之rvictl方式:

开启虚拟端口:rvictl -s

关闭虚拟端口:rvictl -x

然后使用wireshark来捕捉这个端口数据。

(2)抓包之tcpdump方式:

有个很大的缺点是手机需要越狱。

本文内容中部分来自网络,后续会不断更新完善。欢迎一起学习交流!

如需转载,请注明出处

四、参考博客地址:

Mac上的抓包工具Charles

以上是关于轻松搞定Charles的HTTPS抓包(iOS13可用)的主要内容,如果未能解决你的问题,请参考以下文章

Charles进行HTTPS抓包(iOS为例)

Charles抓包(iOS的http/https请求)

十分钟学会Charles抓包(iOS的http/https请求)

Charles抓包(iOS的http/https请求)

iOS抓包利器Charles

charles 抓包iOS模拟器 HTTPS请求