Charles简介
Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。
它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。


1. 下载&安装

官网下载:https://www.charlesproxy.com/latest-release/download.do

下载完成,要是没有桌面图标可以手动进行添加

2、在线破解工具使用,在线生成 注册名和注册秘钥 

工具地址:https://www.zzzmode.com/mytools/charles/

3.  下面是破解操作步骤【很关键的一步,如果不破解就无法正常使用】

 

打开 Charles 进入help—>Register Charles,在弹出框中输入如下信息(你注册的):
Registered Name:lingajijun
License Key:ec75fe257748c84613

输入后,点击:Resgister
出现如下图所示信息,则注册成功。

二.   配置

主要解决两个问题:
1. 访问带https网站被拦截问题
2. 访问带https网站出现乱码问题。

3.1 解决访问https网站被拦截问题
1、进入help—>SSL Proxying—>Install Charles Root Certificate
2、进入后,根据窗口提示,安装进相应位置。提示为将该证书安装到"受信任的根证书颁发机构"
3、点击安装证书,出现如下窗口,选择“本地计算机”,点击"下一步"
4、选择“将所有的证书与都放入下列存储”,并通过“浏览”选择存储位置。根据之前的提示,这里我们需要选择存储到“受信任的根证书颁发机构”
5、继续按照提示点击下一步,直到出现提示成功的窗口,则证书安装成功。

如果证书位置安装错误想删除或者想查看安装的证书,可以通过控制面板—>搜索“证书”—>管理计算机证书
找到之前安装的位置,会出现此目录下所有证书,此时可以选择删除之前安装错误的证书或者查看相关证书。

解决抓取内容出现乱码问题
安装好后的Charles打开有的页面显示为乱码,这是因为https网页的请求默认不解析,所以会呈现乱码状态。但是我们可以通过设置让Charles来解析https网页.
1、Proxy—>SSL Proxying Settings
2、进入设置窗口,Host填为,代表后面出现的任意Host,port设置443*
3、设置好后重启软件,刷新一下百度首页。这时就可以正常抓取百度首页并解析

三.  抓包

1、charles的说明

Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。安装Charles的时候要先装好Java环境。

Charles的主要功能:

(1)截取Http 和 Https 网络封包。

(2)支持重发网络请求,方便后端调试。

(3)支持修改网络请求参数。

(4)支持网络请求的截获并动态修改。

(5)支持模拟慢速网络。

2、Web 抓取HTTPS协议

(1)安装ssl证书

帮助-->SSL代理--->安装charles证书

2.2 点击安装证书 -> 本地计算机 -> 将所有证书都放到下列储存 -> 点击下一步完成即可

2.3  设置设置HTTP/HTTPS协议端口
Proxy -> SSL Proxying Settiongs 在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】
添加以下Host和Port

1. *:*
2. *:443
3. *:80 解释:
在Host输入【*】表示接收任何主机
80是http协议的默认端口
443是https协议的默认端口

(2)打开抓取web端设置
Proxy -> Windows Proxy 勾选中即可

2.5 访问 www.baidu.com 能够抓取到接口并且接口下有数据表示成功

注意:如果接口下抓取是unknown表示失败
1. 协议未配置
2. 证书未安装
3. 防火墙未关闭

3.  Charles手机抓包证书安装(IOS)
App抓包
Charles抓包不仅仅可以抓取来在电脑端的HTTP请求,也能够抓取来自App发出的HTTP请求,但是手机抓包需要在电脑端配置下,并且同时需要手机和电脑在同一网络下并且手机VPN也需要关闭

3.1   端口号设置 Proxy -> Proxy Setting 默认端口号 8888

3.2   查看自己IP地址和端口号和下载证书网址

3.3   手机端设置:
1,打开手机的设置页面;
2,选择【无线局域网】;
3,IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例)
4,点击【配置代理】–>【手动】;
5,输入本机【IP地址】以及【端口号】,根据自己情况合理配置;
6,点击【存储】

再次说明:服务器IP和端口号需要用到自己的IP和Charles上设置的端口
查看方法:Help -> SSl Proxying -> Install Charles Root Certificate on a mobile Device or Remote Browser(步骤3.2 有截图)

3.4 检验代理配置是否成功
打开浏览器验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,
那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装

通过上面的设置,虽然来自我们手机端的Http协议请求可以抓取到,但是HTTPS协议的包是不能抓取的,
需要安装配置证书才可以,现在手机上大多数都已经切到https很少由http协议的了

3.5   Charles配置:
手机打开浏览器输入 chls.pro/ssl,如下提示,点击允许(如果下载失败,请更换浏览器重新在下)

3.6  进入设置 -> 描述文件与设备管理 -> 点击未安装的证书进行安装

3.7 安装成功后需要在 通用 -> 关于本机 -> 证书信任设置 中勾选Charles证书(针对于IOS手机)

最后,重新打开charles,手机访问网页/app就可以了

注意事项:
手机和电脑需要在同一网络下
手机VPN需要关闭
不同电脑对应不同证书,所以说你连接其他电脑需要重新下载手机证书
如果抓出来的接口显示Unknown可以把防火墙关闭,再打开charles重新抓取

=============================================================================================================================================

(3)配置抓包,填入默认代理端口 8888,且勾选 “Enable transparent HTTP proxying” 就完成了设置。

3、手机端抓包

(1)使手机和电脑在同一个局域网内

手机和电脑必须在同一个网络/wifi里,手机选择和电脑相同wifi—>长按此wifi弹框中选择修改网络—>显示高级选项—>服务器主机名输入框中输入电脑ip地址,服务器端口号填写8888——>保存即可,此时手机和电脑绑定在一起一遍电脑抓手机上请求网络数据.

第一步:手机安装SSL证书

进入"Help"->"Install Charles Root Certificate on a Mobile Device or remote Browser",点击

这时会有一个弹框,意思是要给手机设置代理,内容是192.168.1.103:8888,然后用手机浏览器打开chls.pro/ssl

点击立即下载

在手机设置->高级设置->安全里开启未知来源应用下载和外部来源应用安装

在手机文件管理里找到证书,将后缀pem改成crt,点击安装即可

这时发现手机上的HTTPS也能抓取下来了


1. charles安装配置与抓包详解的更多相关文章

  1. tcpdump安装配置及抓包分析

    http://blog.csdn.net/e421083458/article/details/23963189 cpdump安装配置及抓包分析 预装软件:[plain] view plain cop ...

  2. centos6.4安装配置vpn服务器步骤详解

      centos6.4安装配置vpn服务器步骤详解,从安装VPN到配置VPN服务器.配置VPN服务器的路由转发功能,每一步都很详细   一.VPN服务器环境说明 操作系统:CentOS release ...

  3. 2.TCP_IP互联线缆_TCP_UDP报文抓包详解

    TCP_IP互联线缆_TCP_UDP报文抓包详解 2.1网线标准 直通线 交叉线 异种设备互联使用直通线 同种设备互联使用交叉线 TCP和UDP 端口寻址 TCP数据格式 TCP三次握手 UDP数据格 ...

  4. charles抓包详解http 与 https

    包工具多种多样,比较好使的还是Charles和Fiddler,下面就简单的介绍下HTTPS的相关原理并以Charles为例来介绍下如何抓取HTTPS协议的包 1.下载charles 可以去charle ...

  5. fiddler抓包详解

    image.png 前言 fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书. 一.网页不安全 1.用fiddler ...

  6. 转:APP开发浅谈-Fiddler抓包详解

    原文地址:http://www.luoxudong.com/?p=306 Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今 ...

  7. APP开发浅谈-Fiddler抓包详解

    Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助.今天抽点时间出来总结一下Fiddler在实际开发过程中的应用. 我开发过程中 ...

  8. 抓包工具Fidder移动端HTTP请求抓包详解

    第一步:下载神器Fiddler,下载链接: http://fiddler2.com/get-fiddler 下载完成之后,傻瓜式的安装一下了! 第二步:设置Fiddler打开Fiddler,     ...

  9. CentOS 7.0安装配置Vsftp服务器步骤详解

    安装Vsftp讲过最多的就是在centos6.x版本中了,这里小编看到有朋友写了一篇非常不错的CentOS 7.0安装配置Vsftp服务器教程,下面整理分享给各位. 一.配置防火墙,开启FTP服务器需 ...

随机推荐

  1. 内网渗透----域环境搭建(server 2012)

    先确定两台服务器相通 1.配置静态IP与DNS 2.配置域服务 点击服务器管理器-添加角色和功能-下一步-添加AD域服务: 3.提升为域控制器 安装完成后,可在旗帜处选择提升为域控制器 添加新林 添加 ...

  2. weblogic重要漏洞记录

    (PS:之前在freebuf发过,这里直接复制过来的,所以有些图片会有水印) 前言 T3协议存在多个反序列化漏洞CVE-2015-4852/CVE-2016-0638/CVE-2016-3510/CV ...

  3. Java Study two

    由于前段时间再做.NET 项目没做更新,今天简单的学习java项目的新建和入门的学习 今日目标 基础语法了解 新建第一个java项目 新建第一个项目Class ->HelloWorld 运行并输 ...

  4. 【freertos】005-启动调度器分析

    前言 本节主要讲解启动调度器. 这些都是与硬件相关,所以会分两条线走:posix和cortex m3. 原文:李柱明博客:https://www.cnblogs.com/lizhuming/p/160 ...

  5. 如何规划一台 Linux 主机,步骤是怎样?

    1.确定机器是做什么用的,比如是做 WEB .DB.还是游戏服务器.不同的用途,机器的配置会有所不同.    2.确定好之后,就要定系统需要怎么安装,默认安装哪些系统.分区怎么做.    3.需要优化 ...

  6. 如何处理异形屏iphone X?

    safe area: 默认放置在安全区域以避免遮挡, 但会压缩 在meta中添加viewport-fit=cover: 告诉浏览器要讲整个页面渲染到浏览器中,不管设备是圆角与否,这个时候会造成页面的元 ...

  7. Java如何声明一个数组?JS如何声明一个数组?如何获取数组长度

    1 Long[] numbers; //一般使用的定义方式,可分为静态和动态两种定义方式,下有说明. 2 Long numbers[]; //跟上面用法一致. 3 Long... numbers; / ...

  8. C++面试问题汇总

    作者:勿忘心安~~链接:https://www.nowcoder.com/discuss/197611来源:牛客网 1 C++基础: (1)多态是怎么样的?写个样例? https://www.cnbl ...

  9. 什么是多线程环境下的伪共享(false sharing)?

    伪共享是多线程系统(每个处理器有自己的局部缓存)中一个众所周知的性能问 题.伪共享发生在不同处理器的上的线程对变量的修改依赖于相同的缓存行,如 下图所示: 伪共享问题很难被发现,因为线程可能访问完全不 ...

  10. 基于Python3实现的各类数据库连接和连接池

    基于Python3的各类数据库连接和连接池, 支持数据库有: Mysql(MariaDB), Oracle, PostgreSQL(GreenPlum), Vertica, Redis, MongoD ...