Charles原理与安装

认识Charles

Charles 是什么

Charles 是一个运行在计算机上的web代理(HTTP代理/ HTTP监视器),浏览器(或任何其他互联网应用程序)被配置为通过Charles访问互联网,Charles能够记录和显示所有发送和接收的数据。

Charles 的作用

Charles 使调试快速、可靠和先进;节省时间

Charles 的抓包原理

如果是HTTP请求,因为数据本身并没有加密所以请求内容和返回结果是直接展现出来的。

但HTTPS是对数据进行了加密处理的,如果不做任何应对是无法获取其中内容。所以Charles做的就是对客户端把自己伪装成服务器,对服务器把自己伪装成客户端。具体步骤:

1、客户端向服务器发起https请求

2、Charles 拦截客户端的请求,伪装成客户端向服务器进行请求

3、服务器向“客户端”(实际上Charles)返回服务器的CA证书

4、Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端(这一步,Charles拿到了服务器的证书的公钥)

5、客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)

6、Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器(Charles拿到了对称密钥)

7、服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应

8、Charles拦截服务器的响应,替换成自己的证书后发送给客户端

至此,连接建立,Charles拿到了 服务器证书的公钥 和 客户端与服务器协商的对称密钥,之后就可以解密或者修改加密的报文了。

安装步骤

工具下载

首先下载安装Charles工具:https://www.charlesproxy.com/download/

注册码:https://www.zzzmode.com/mytools/charles/

Registered Name: https://zhile.io

License Key: 48891cf209c6d32bf4

电脑端安装Charles的CA证书

Charles需要下载安装ssl/https证书,因为Charles是作为中间的过滤器使用的,Charles如果不配置SSL通用证书,会导致HPPTS协议的域名抓取失败/乱码的现象;

选择 “Help” -> “SSL Proxying” -> “Install Charles Root Certificate”


信任Charles证书,选中Charles证书,右键查看详情,信任该证书(虽然没影响)


抓取https请求,Charles代理设置

在设置了第二步抓取http请求之后,Charles对于https请求会显示unkonwn 就是不能解析https请求,需要的步骤已经提示看的右边:SSL Proxying not enabled for this host……


顶部工具栏:Proxy-> SSL Proxying Settings->SSL Proxying:勾选Enable SSL Proxying

添加需要拦截https的域名host,端口是443

这里是把所有的host都设置进去,也可以用 * 代替会将所有的https请求都捕获

Android & IOS 手机设置抓包

1、证书安装,点击 help--ssl proxying-- install charles root certificate on a mobile device or remote brower--有以下弹窗

1)首先要确认手机和电脑处于同一个局域网中,连接同一个wifi,使用ping ip

2)检查你的device 设备,并设置设备的无线网络代理是MAC设备的IP地址,【通过Charles 中点击 help➡️local IP Address来查看MAC设备的IP地址,以及设置的端口号,默认是8888

还有通过这个来看IP


2、在Android、IOS设备上;Android选择无线网络,修改网络,设置代理为MAC设备的IP地址,IOS 选择无线网,修改网络,设置代理为MAC设备的IP地址

2.1、Android设备安装设置

1)进入手机设置界面打开无线局域网设置:

修改网络,代理类型为手动,设置代理为MAC设备的IP

2)在Android 手机浏览器输入 chls.pro/ssl 下载证书,【Android设备使用非chrome浏览器下载的charles证书默认不能安装成功,可以在无线网络中,点击WLAN设置,选择安装证书,此时需要输入证书名称(该证书是下载到本地的 .pem 证书),点击确定 OR如果安装还不成功,请尝试把文件重命名为.crt,再重复上述操作】

完成了charles ca证书的安装了。接下来就可以任意访问手机端的app,然后再charlse端进行抓包

2.2、IOS设备安装设置

1)进入手机设置界面打开无线局域网设置:

2)打开手机的浏览器,输入

chls.pro/ssl 会弹出下载证书界面点击安装即可。


3)下载完成后,需要在设置中安装相应的证书。

iOS 10.3系统及以上,需要在 在设置-通用-关于本机-证书信任设置->打开手机端对charles proxy ca证书的信任


至此,就完成了charles ca证书的安装了。接下来就可以任意访问手机端的app,然后再charlse端进行抓包

常见问题

问题1:权限问题

在启动和设置代理时报错 Charles cannot configure your proxy settings while it is on a read-only volume. Perhaps you are running Charles from the disk image? If so, please copy Charles to the Applications folder and run it again. Otherwise please ensure that Charles is running on a volume that is read-write and try again.

解决方法:控制台执行如下命令

sudo chown -R root "/Applications/Charles.app/Contents/Resources"

sudo chmod -R u+s "/Applications/Charles.app/Contents/Resources"

然后重启charles

©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • 在做开发时,为了调试与服务器端的网络通讯协议,常常需要截取网络数据包来分析。不管是移动开发者还是测试者,抓包工具对...
    小道萧兮阅读 5,036评论 4 7
  • 背景 作为移动平台的RD,项目开发过程中一项比较重要的甩锅技能——抓包应该大家都比较熟悉了,毕竟有些bug可能是由...
    silentleaf阅读 46,873评论 12 61
  • 客户端向服务器发起HTTPS请求 Charles拦截客户端的请求,伪装成客户端向服务器进行请求 服务器向“客户端”...
    IT卡农阅读 2,429评论 0 2
  • Charles 主要的功能包括下面这些: 截取 Http 和 Https 网络封包。支持重发网络请求,方便后端调试...
    兜里有糖君莫笑阅读 1,343评论 0 0
  • 一、抓包概述 1. 抓包概念 抓包是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安...
    Bfmall阅读 3,301评论 0 1