Charles抓包https
Charles抓包https
抓取HTTPS请求包,对数据进行排查检验
1.安装Charles
2.电脑安装Charles证书


3.手机安装证书

4.手机网页输入网址 下载证书并信任


注意:在iOS 10.3之前,当你将安装一个自定义证书,iOS会默认信任,不需要进一步的设置。而iOS 10.3之后,安装新的自定义证书默认是不受信任的。如果要信任已安装的自定义证书,需要手动打开开关以信任证书。
iOS11下需要手动信任已下载好的证书,方法如下:
设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.
iOS11下手动信任证书
5.开始抓包
Charles设置Proxy
Proxy -> SSL Proxying Settings...,如下图所示:

选择Proxy | Recording Settings,弹出Recording Settings设置选项卡,勾选include

6.原理简析
如果是HTTP请求,因为数据本身并没加密所以请求内容和返回结果是直接展现出来的。
但HTTPS是对数据进行了加密处理的,如果不做任何应对是无法获取其中内容。所以Charles做的就是对客户端把自己伪装成服务器,对服务器把自己伪装成客户端:
- Charles拦截客户端的请求,伪装成客户端向服务器进行请求
- 服务器向“客户端”(实际上是Charles)返回服务器的CA证书
- Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥)
- 客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
- Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥)
- 服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
- Charles拦截服务器的响应,替换成自己的证书后发送给客户端
当然,如果用户不选择信任安装Charles的CA证书,Charles也无法获取请求内容。还有一种,如果客户端内置了本身的CA证书,这时如果Charles把自己的证书发送给客户端,客户端会发现与程序内的证书不一致,不予通过,此时Charles也是无法获取信息的。
参考
mac环境下使用Charles抓包Https请求
浅谈Charles抓包
Charles 抓包IOS中https乱码解决
Charles抓包https的更多相关文章
- charles抓包https设置
写在前面 https抓包的实现 (一)首先,电脑得装个证书 (二)然后,移动设备上安装证书 (三)最后,Charles添加SSL Proxying 写在前面 开发时,面对各种接口数据,绝大多数时间都会 ...
- charles抓包https/模拟弱网/设置断点重定向/压测
charles几个常用功能 1,ios 抓包https网页:(如未配置,会显示unknown) 第一步是:给手机安装SSL证书 手机和电脑在同一wifi下,手机wifi配置http代理,ip是电脑 ...
- Charles抓包https请求
平时使用Charles抓包,http的请求一眼就看到具体的请求信息返回信息等,但是如果是https请求,则是出现<unknow>,如下图: 若想要抓取https请求,怎么办呢? 1.连接C ...
- charles 抓包 https 证书
1. 概述 环境:这里是windows8 和 android (参考了ios环境的博客) 手机app点击发出http及https的请求,之前抓包都有请求的相关内容展示,这次没有,原来之前的一直抓的是h ...
- Windows下Charles抓包https协议配置
最近设置https协议对手机app抓包遇到一些问题,现在在这里记录下,以防以后遇到问题没有记录 1.从官网下载Charles的安装包 https://www.charlesproxy.com/down ...
- Mac下使用Charles抓包https接口
1 官方网站下载,安装好Charles https://www.charlesproxy.com/download/ 2 安装ssl证书 3 信任证书 4 手机iPhone配置 ,获取证书url 5 ...
- 【接口工具】mac环境下使用Charles抓包Https请求
Charles支持针对Https包解析.具体安装导航请参考“[接口工具]接口抓包工具之Charles” 操作流程 电脑安装证书: Help-SSL Proxying-Install Charles R ...
- windows charles 抓包https请求
charles证书 2.设置host和端口 3.浏览器访问即可抓到https的请求
- charles使用:iOS11的手机用charles抓包https
参考:https://www.jianshu.com/p/235bc6c3ca77 因为ios11经常抓不了包,以前一直没管,今天实在是不行,,,,搞了一下.OK了 步骤: 1.下载并安装charle ...
随机推荐
- Nginx配置支持https协议-应用实践
Nginx配置支持https协议-应用实践 https简介 HTTPS 是运行在 TLS/SSL 之上的 HTTP,与普通的 HTTP 相比,在数据传输的安全性上有很大的提升. TLS是传输层安全协议 ...
- 【LOJ】#2524. 「HAOI2018」反色游戏
题解 如果一个联通块是一个树的话,方案数就一种,如果这个联通块还有别的边,那选了一条别的边就会把树上对应路径全部取反,所以方案数是\(2^{m - n + 1}\) 如果联通块数为\(c\)方案数为\ ...
- 【LOJ】#2479. 「九省联考 2018」制胡窜
题解 老了,国赛之前敲一个后缀树上LCT和线段树都休闲的很 现在后缀树上线段树合并差点把我写死 主要思路就是后缀树+线段树合并+容斥,我相信熟练的OIer看到这已经会了 但就是不想写 但是由于我过于老 ...
- PLSQL Developer 中文显示乱码的解决方法
PLSQL Developer 中文显示乱码是因为 Oracle 数据库所用的编码和 PLSQL Developer 所用的编码不同所导致的. 解决方法: 1. 先查询 Oracle 所用的编码 se ...
- CSS------给字体添加边框时,边框大小无法改变问题
如图: 代码:(需要将display属性设置为inline-block,在设置height和line-height调整位置) //品牌点击 $(".li-brand").click ...
- spark streaming限制吞吐
使用spark.streaming.receiver.maxRate这个属性限制每秒的最大吞吐.官方文档如下: Maximum rate (number of records per second) ...
- 使用djcelery发送邮件
发送邮件作为一个独立的业务模块,我们把它放到另外一个文件中,定义一个task文件,里面定义发送邮件的功能, 需要用到django.core.mail 里面的send_mail这个函数 发送邮件与网络环 ...
- UICollectionView 常用操作
1 iOS开发 - UICollectionView点击展开收起
- C# EF Attach 与 Entry
先了解一下 EF 框架的 EntityState 在使用EF框架时, 我们通常都是通过调用 SaveChanges() 方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加.修 ...
- OS X - 在80端口启动Nginx
不知道你是怎么在你的mac上安装nginx的,但是如果你跟我一样: brew install nginx 然后你会发现你的nginx.conf中的端口是8080. 于是你可能像我一样试着把端口改为80 ...
