Charles 和 Fiddler 一样都是http抓包工具。

之前用 Fiddler 抓个别 ios 手机 https 报文时总卡在哪里返不回任何数据,后来怀疑是 Fiddler 问题,就考虑使用 Charles 。最后发现是我使用问题 错怪了Fiddler。

http抓包

http抓包配置很简单就是使用 Charles 作为代理服务器。

1、从官网下载 charles,根据你的系统选择合适版本即可

  https://www.charlesproxy.com/download/

2、安装 charles, windows 一直 下一步 即可

3、代理配置 proxy-》proxy settings

4、按如下配置

a)端口号默认8888也可以改

b)勾选 Enable transparent HTTP proxying

5、查看ip地址

可以在cmd中输入 ipconfig 或者help->Local IP Address查看ip

6、手机上配置

配置好ip地址和端口此时所有数据报文即可抓到

7、手机上设置代理后,Charles 会弹出链接确认提示框选择 允许(Allow)

8、到此就可以抓到包了,但https能够抓到但内容都是乱码(密文)

https抓包

https 与 http  抓包没有什么区别,区别在于 https 使用的 ssl 加密算法对数据进行了加密,也就是上图抓到的都是密文无法看到明文内容。所以咱们要做的只是安装证书,让手机使用咱们的证书进行通信,这样自然就可以看到明文了。原理如下图:

言归正传开始证书配置

1、安装证书

也是简单确定即可。这个安装的是移动证书,也就是给app等客户端使用的证书。如果你要抓本地浏览器 https 内容,点上边 “Install Charles Root Certificate”

本地证书安装,如果不需要抓本地包可以跳过。对于本地 https 如果不需要拦截修改等,浏览器F12即可查看

1.1 选择安装证书

1.2 选择本地计算机

1.3 选择证书存放位置,可以自定义一个更高的位置

1.4 选择存放到根证书中,然后 下一步 完成,至此本地证书安装完成

2、打开手机在浏览器输入 chls.pro/ssl,刚才安装移动证书时也会显示地址(此文只有 ios 手机配置,安卓手机配置雷同 参见:https://www.cnblogs.com/rslai/p/7794940.html

3、访问后提示正在下载配置描述文件,点击“允许”即可

4、在 通用->描述文件与设备管理 中 安装 刚刚下载的 Charless 证书

5、charles中配置ssl

6、勾选允许ssl代理,并添加那些地址使用,点击add添加

7、host 和 port中输入 *,代表所有服务器所有端口都使用ssl代理

8、至此配置完成,部分 ios 手机就可以看到明文的 https 报文了。

为什么说部分呢?也就是开头说的 Fiddler 无法抓部分 ios 设备的 https 的报文。原因是高版本的 ios 还需要再启用根证书才行

根证书启用完全信任

1、设置->通用->关于本机->证书信任设置,找到 charles 启用即可,Fiddler 的话找到证书启用也就可以了。

2、此时 https 即可显示明文了

破解charles

最后的一个问题,此时 charles 只能使用30分钟,每隔30分钟需要重启一次。要么买一个,要么破解。

参考:https://blog.csdn.net/qq_25821067/article/details/79848589

参考文献:

  https://jingyan.baidu.com/article/0aa2237561af1088cc0d64c9.html

Charles4.2.8抓包(http+https)的更多相关文章

  1. fiddler抓包工具 https抓取 ios手机端抓取

    fiddler抓包工具 https抓取 ios手机端抓取  转载链接:https://www.cnblogs.com/bais/p/9118297.html   抓取pc端https请求,ios手机端 ...

  2. Wireshark抓包分析HTTPS与HTTP报文的差异

    一.什么是HTTPS: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换 ...

  3. 微信7.0以上版本fiddler、Charles抓包报HTTPS证书信任问题通报

    通报:微信更新到7.0以后抓包公众号会有证书问题,抓包小程序直接不能打开 各位不用到处找了,也不用怀疑人生了,你没有问题.win10也没有问题.fiddler和Charles也没有问题,是因为微信更新 ...

  4. Charles抓包之HTTPS抓包配置

    访问我的博客 前言 由于工作中经常需要配置客户端开发人员对接接口,有时候对接地不太顺利,因此需要经常性地对公司 APP 进行抓包看请求,找出具体的原因. 在公司中开发使用的 Windows 台式电脑, ...

  5. 使用Fiddler抓包调试https下的页面

    众所周知https技术诞生以来,一个很重要的作用就是加密通信内容.所以在项目团队将业务站点实施完https改造以后,原先使用fiddler进行抓包的美好生活到头了.其实fiddler本身是支持对于ht ...

  6. Mac 环境 下使用Charles 抓包Http/Https请求

    实现目标 在Mac 上 对 iOS  真机 和 模拟器 进行 Http/Https抓包 使用工具 Mac 上 Charles 4.2  安装 参考链接 1. 和 链接 2. 抓包 http 请求 (1 ...

  7. Charles抓包(http/https请求)

    Charles安装 HTTP抓包 HTTPS抓包 1. Charles安装官网下载安装Charles:https://www.charlesproxy.com/download/当然由于国情可以使用破 ...

  8. Windows版 charles安装证书抓包网页HTTPS

    1.在Charles官网https://www.charlesproxy.com/download/下载,我这边下载的是免费体验版的. 2.安装好以后打开,配置Charles证书:选择 help--S ...

  9. 用Fiddler在Android上抓包(Http+https)

    Fiddler是一个HTTP协议调试代理工具,在开发网络应用的时候经常会用到,其最基本的作用是能抓HTTP的数据包,当然它还有更高级的用法,如添加断点.修改请求与相应的数据等等... 抓HTTP包 安 ...

随机推荐

  1. [RN] React Native 下实现底部标签(不支持滑动切换)

    底部标签是现在App的基本菜单实现 下面分别用 createBottomTabNavigator 和 createMaterialBottomTabNavigator 两种方法分别实现底部菜单 但此两 ...

  2. 洛谷 P2085 最小函数值

    目录 题目 思路 \(Code\) 题目 戳 思路 首先这些函数全部单带递增,因为\(a\),\(b\),\(c\)都是正整数. 我们将全部的函数的\(x\)为\(1\)时的函数值放入优先度列(小根堆 ...

  3. GitHub 远程仓库 de 第一次配置

    GitHub远程仓库, Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.首先找一台电脑充当服务器的角色, 每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上 ...

  4. shell 杀死80端口的所有进程

    netstat -lnp|grep |grep -v grep |awk

  5. 测试Leader应该做哪些事

    一.负责测试组的工作组织和管理 1.参加软件产品开发前的需求调研和分析: 2.根据需求,概要设计和开发计划编写项目总体测试计划,详细测试计划,测试大纲和测试文档结构表(测试计划 a.已上线产品维护以及 ...

  6. cpu指令重排序的原理

    目录: 1.重排序场景 2.追根溯源 3.缓存一致性协议 4.重排序原因 一.重排序场景 class ResortDemo { int a = 0; boolean flag = false; pub ...

  7. 删除N天前的log日志文件:RollingFileAppender,DailyRollingFileAppender,/etc/cron

    1. 如果您使用的是Log4j,且采用的RollingFileAppender方式, 通过设置maxBackupIndex属性来指定要保留的日志文件数的最大值可以间接实现删除N天前的日志文件. 2. ...

  8. Spring Cloud Eureka配置文件详解

    本篇内容用来说明Eureka 常用配置的含义. 以下配置都是以 eureka.server 开头: 参数 描述 备注 eureka.server.eviction-interval-timer-in- ...

  9. PHP cURL 超时设置 CURLOPT_CONNECTTIMEOUT 和 CURLOPT_TIMEOUT 的区别

    PHP cURL 的超时设置有两个 CURLOPT_CONNECTTIMEOUT 和 CURLOPT_TIMEOUT,他们的区别是: CURLOPT_CONNECTTIMEOUT 用来告诉 PHP 在 ...

  10. ES6将两个数组合并成一个对象数组

    需求 有这么两个数组 let metrodates = [ "2008-01", "2008-02", "2008-03",..ect ]; ...