文章目录

  • 背景
  • 操作原理
  • windows 安装Charles
  • Charles配置
    • 第一步:配置HTTP代理,这步与抓取HTTP请求是一样
    • 第二步:配置SSL代理
    • 第三步 :为手机配置代理
      • iPhone 代理配置
      • Android 代理配置
    • 第四步:安装根证书
      • iPhone 安装charles证书
      • Android 安装charles证书
      • windows 安装charles证书
  • 抓包
    • 正常抓包
    • 抓包乱码

背景

后端小伙伴接口文档没写,问接口时,回复说web已经实现了,抓包看接口和参数。虚心的应了句,试试看。结果也不是如此,支付下单的后端接口到能直接调用微信支付的仅在微信内打开h5才能自然支付,此时抓包不再是f12的事情了。需要使用代理,本文主要讲windows 上Charles抓手机上的https包,包括Android 和 ios。

操作原理

关键的操作思想:

  1. 构造一个中间人代理,它有能力完成TLS/SSL握手
  2. 弄到一个根证书,并用它生成签名认证的代理服务器证书

Charles就是一个理想的中间人,它支持SSL握手,可以自动根据根证书生成一个签名的服务器证书,并且它的官网为我们提供了一个根证书。
我们要做的就是在客户端安装好这个根证书,然后让我们的操作系统信任它。对App来说,需要设法在IOS或Android上装上这个官网提供的根证书。
完成上述步骤后,App再指定Charles(电脑)为它的代理服务器,这时,App(或手机浏览器)请求的服务器证书就是Charles自动生成的代理服务器证书。如果Charles的根证书已被信任,这个自动生成的代理服务器证书是有效的,使用它App和Charles的TLS握手可以顺利完成。

windows 安装Charles

官网下载或其他网站下载都可以,官网现状是30天免费。
下载完成后双击运行,一直下一步直到安装结束。

Charles配置

第一步:配置HTTP代理,这步与抓取HTTP请求是一样


选择在8888端口上监听,然后确定。勾选SOCKS proxy,还能截获到浏览器的http访问请求。
说明:这里的8888端口作用是监听端口,手机设置代理时就要填写这个端口。

第二步:配置SSL代理

在charles的 Proxy选项选择SSL Proxy Settings

接着在弹出的对话框中点击add,添加需要监视的域名。域名支持 *号通配符,如:抓取所有的https请求,可以填写 *:443
如果想要抓取qq.com的域名,可以填写 *.qq.com
鄙人就填了*:443,外加一个18043端口

第三步 :为手机配置代理

在手机无线中配置手动代理,输入安装Charles的电脑的网络地址,端口填8888(上文中提到过)。

iPhone 代理配置

我的是iphone12,系统14.7

  1. 设置 - 无线局域网 找到当前网络,点击信息

  2. 接着拉到底

  3. 打开配置代理,选择手动,填写电脑ip(图中为我的IP,请修改为your电脑ip),监听端口(8888)进行配置,然后记得存储(保存)

Android 代理配置

我的华为 nova3e Android 9

  1. 设置 - 无线与网络 - WLAN 找到当前连接的网络并长按,选择修改网络
  2. 勾选 显示高级设置 ,然后显示代理后选择手动
  3. 设置代理服务器后记得保存

第四步:安装根证书

这里安装根证书是指Charles的根证书,包括电脑和手机都需要安装。手机安装证书时,必须执行到了上面第三步,手机已经设置好了代理(此时不能访问百度或其他网站,不要慌)。

iPhone 安装charles证书

  1. 在Safri上打开Charles的根证书下载网址: chls.pro/ssl 。

  2. 下载完之后会提示 到设置app中查看描述文件(证书),点击关闭

  3. 设置 - 通用 中可以找到 "描述文件"选项,并打开

  4. 找到刚才下载的证书,点击安装,安装过程中需要输入屏幕密码,没有需要设置屏幕密码

  5. 此时会有提示,只管继续安装

    安装成功后如下:

  6. 去设置信任(非常关键)
    设置 - 通用 - 关于本机, 拉到底后看到 证书信任设置 点开


    开启证书信任:

Android 安装charles证书

  1. 在自带浏览器上打开Charles的根证书下载网址: chls.pro/ssl 。前提也是Windows charles 先配置好代理(完成第二第三步),手机网络设置好代理服务器。

    下载后无法打开无法识别(不要慌)

  2. 设置 - 安全和隐私 - 更多安全设置 - 加密和凭据

    接着选择 ”从存储设备安装“

    再选择下载的证书文件

  3. 安装证书,需要输入屏幕密码或设置屏幕密码(没有的话),弹框中选择WLAN

  4. 安装成功后可以在 ”用户凭据“中查看


    至此Android 证书安装完成,可以在 受信任的凭据 - 用户 中看到刚才的证书是受信任的

windows 安装charles证书

  1. charles 菜单 help - SSL Proxying - Install Charles Root Certificate

  2. 弹出如下提示框,选择安装证书

    安装过程中不要选择个人用户,要选本地计算机(足够的权限)

  3. 选择及那个所有证书放入指定的受信任的存储区


  4. 安装完成后可以查看证书的详细信息和路径

抓包

手机代理配置好,证书配置好,手机开始访问期望的接口或网站

正常抓包

能看到明文的参数和响应数据

抓包乱码

  1. SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations

    点击后面的Notes查看原因:

    这样提示是因为没有开启ssl(https) 的代理,这样去开启


    重新开始抓包即可(可不重启charles),需要手机刷新页面
  2. 加密数据
    这种情况下是接口开发人员把数据加密传输的,要解密已经不是本文要讲的内容。

Charles抓取HTTPS Windows Android iOS 图文详细相关推荐

  1. 浅谈Charles抓取HTTPS原理及HTTP CONNECT

    浅谈Charles抓取HTTPS原理 在关于HTTPS,你需要知道的全部中,分析了HTTPS的安全通信过程,知道了HTTPS可以有效防止中间人攻击.但用过抓包工具的人都知道,比如Charles,Fid ...

  2. 使用Charles抓取https请求

    总结下使用Charles进行简单接口压力测试以及修改接口请求,Charles是一款非常好用的抓包工具,通常使用它来进行APP开发抓包调试,尤其是HTTPS请求. 一.安装Charles 去官网(htt ...

  3. Charles抓取https请求

    最近公司将Windows产品的http请求,替换成https请求了,当https请求超过5次失败,就自动切换回http请求.测试时使用Charles抓包测试. 一.http抓包 http抓包比较简单, ...

  4. Charles抓取https的坑,记录一下备用,想爆粗口了

    Charles抓包网上一大串的操作,就是抓不了https,无奈吧 安装证书 在这里面自己找 安装到这里面就行了: ssl设置 在这里自己配置一下: 端口设置 这里自己设置: 手机装证书??? 自己he ...

  5. Charles抓取Https安装证书

    方法1 Charles安装证书 保存证书 谷歌浏览器安装所需要证书 方法2

  6. Charles抓取微信小程序数据 以及 其它应用网站数据

    为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用).使用Charles可以非常方便的抓取Http/Https请求.官方dmg下载地址:点击此处下载 Charles抓 ...

  7. 使用Charles 抓取数据包

    一.Charles抓取不到http请求 Charles 安装好,启动了之后,基于HTTP的数据抓取,一般情况下直接设置Proxy ->Proxy Settings->Port (8888) ...

  8. 【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程

    以下教程可能耗费你数小时时间,请注意时间. 目标:抓取HTTPS的包 如果你的手机是在Android 7.0+及其以上,想要抓取HTTPS的请求,必须要将证书(*.pem)用系统用户的权限安装,即把这 ...

  9. 利用charles 抓取ios app的https数据包-----软件配置和抓取步骤

    背景:最近在做数据缓存相关的工作:我们的设备是放在高铁里面的,主要是提供wifi服务.然而我们的wifi是由sim卡4g网络拨号提供的,用户在上网时需要下载我们的APP:掌上高铁:所以领导提出一个要求 ...

最新文章

  1. php的正则怎么写,一个正则的写法 php
  2. mysql导入sql文件过大或连接超时的解决的方法
  3. Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果...
  4. 后APP时代的破局之路 :阿里技术“三大容器五大方案”亮相,百川开放全面升级...
  5. C++ 复数类加减法运算重载为成员函数形式
  6. CSS实现TikTok文字抖动效果
  7. lower版购物车模拟
  8. [转]理解事件捕获和事件冒泡
  9. MyCat2测试实战 -- 王者归来的故事
  10. 线程创建的三种方式和线程池创建的四种方式
  11. 全球高效能人士给青年的50个忠告(上)
  12. 时域OCT与频域OCT的区别
  13. 大白菜u盘装win10步骤图解
  14. web前端利用leaflet生成粒子风场,类似windy
  15. 移动Web第七天(响应式网页:媒体查询、BootStrap)
  16. Android 设置黑白滤镜
  17. http协议_代理服务(proxy)
  18. MATLAB矩阵画法,MATLAB矩阵与数组
  19. 金融IC卡全“芯”起航
  20. sdnu oj 1194 传纸条 双线程DP

热门文章

  1. free -h命令下参数的含义
  2. 赚钱 36 计 - 第二计:资源计
  3. 文化中国 系列十:未归类系列
  4. JAVA抽象类空指针异常_[ Coding七十二绝技 ] 如何利用Java异常快速分析源码
  5. 06全局配置文件application.yaml详解
  6. 大数据HiveSQL学习笔记三-查询基础语法以及常用函数
  7. android tv闹钟_Android开发之闹钟
  8. C#微信公众号自动回复源码
  9. 巴菲特的护城河- 帕特·多尔西
  10. Mac新手必看!最全Mac系统快捷键一览!