首先准备工具

1> Charles (下载对应操作系统的安装包进行安装,本文使用 macOS 进行演示)

2> iPhone (本文使用SE,系统版本:iOS 10)

开始

首先,对Charles进行配置:

菜单:Proxy -> Proxy Settings... -> 勾选 Enable transparent HTTP proxying

Proxy -> Proxy Settings

然后找到电脑的局域网IP地址:这里自己去找吧

接着,打开你的iPhone:设置 -> Wifi -> 连接上和电脑同一路由器的Wifi,点击右边的 i 进入配置

配置:拉到底部,找到 <HTTP代理>, 选择手动, 服务器填入电脑的IP地址,端口号写 8888 然后返回会刷新Wifi连接

设置 -> Wifi -> i -> HTTP代理 手动

此处配置完成后,Charles会弹出提示框,

大意是:有人请求连接Charles ip是xxx.xxx.xxx.xxx是否允许?

这里要注意!!!Charles的默认选项是Deny拒绝,所以一定不要按回车!!! 手动选择Allow!!!

到此,即可正常抓取iPhone的连接。

但,目前苹果的大部分App都采用了更安全的HTTPS进行数据交互,所以我们要抓取HTTPS还需要进一步的配置。

继续

回到Charles,进行证书安装:

Charles菜单:Help -> SSL Proxying -> Install Charles Root Certificate 点击后自动打开钥匙串访问,请输入电脑开机密码

Help -> SSL Proxying -> Install Charles Root Certificate

完成后你会看见两个证书:

两个证书

双击证书,打开证书详情:展开信任 -> 使用此证书时:修改为 始终信任,关闭证书详情要求输入开机密码

 
信任 -> 使用此证书时

两个证书都设置为始终信任。

接着,安装手机端的证书:

回到Charles,菜单:Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser

 
Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser

点击后会弹出对话框,大意是:配置你的设备来使用Charles,证书下载地址:chls.pro/ssl

 
配置手机端证书

打开手机Safari,访问下载地址:chls.pro/ssl  (如果我们显示的不同,则以提示中的地址为准)

正常情况下访问此地址会请求安装一个配置文件。若无请求请检查Wifi是否设置了 HTTP代理 (参考配置图:设置 -> Wifi -> i -> HTTP代理 手动)。

 
手机端安装证书1

点击安装:

 
手机端安装证书2

网上很多教程到这就结束了,但返回Charles会发现还是无法正常抓取HTTPS的请求。

其实还有一个设置,信任证书:

打开iPhone设置:通用 -> 关于手机 -> 拉到最底部 证书信任设置 -> 勾选刚刚安装的证书

 
信任证书

好了,回到Charles进行最后的收尾设置:

菜单:Proxy -> SSL Proxying Settings...

 
Proxy -> SSL Proxying Settings...

勾选:Enable SSL Proxying,点击 Add 添加规则

 
域名:配置完上述所有内容后,你会在Charles中看到很多请求,都是以域名为标题的

域名:配置完上述所有内容后,你会在Charles中看到很多请求,都是以域名为标题。

端口:恒定为443

若不需要指定HTTPS连接(即抓取所有HTTPS连接),域名填写 * 即可。

 
配置 SSL Proxying

TIPS:

> WIFI代理,请在不需要使用的时候关闭,否则可能导致手机无法正常联网。

> 若Charles界面一片空白

 
一片空白

点击菜单:File -> New Session

 
File -> New Session

然后就有了

 
有了

测试数据:获取QQ中的QQ天气

 
QQ天气

完。

使用Charles对iPhone进行Http(s)请求拦截(抓包)的更多相关文章

  1. 使用Charles对Android App的https请求进行抓包

    本文背景 公司新项目要求抓取目前市面上一些热门App的数据,经过研究发现很多App的网络请求都使用https进行数据传输,这样问题就来了,http使用明文传输所有请求都能拦截到,而https请求无法拦 ...

  2. Fiddler抓取https请求 & Fiddler抓包工具常用功能详解

    Fiddler抓取https请求 & Fiddler抓包工具常用功能详解   先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:“你这个页面做的有问 ...

  3. 利用Fiddler对Android模拟器网络请求进行抓包

    安装使用Fiddler 下载安装Fiddler的方法这里就略过了,一路Next就行了.装好之后运行软件,正常情况这个时候我们已经可以对电脑的网络请求进行抓包了.Fiddler默认的代理地址是127.0 ...

  4. 使用Charles对Https请求进行抓包

    昨天对某个APP做分析的时候发现其请求是Https的,抓包工具不能正常的显示请求的内容及返回的情况.通过搜索发现Charles是支持针对Https抓包的.具体的操作如下: 1.电脑端安装SSL证书 2 ...

  5. 支持https请求以及https请求的抓包

    iOS9推出的时候,苹果希望大家使用https协议,来提高数据传输之间的安全性.下面我就从最简单的代码介绍,如何在工程中设置,来支持https的请求. 一.证书准备篇 1.证书转换 在服务器人员,给你 ...

  6. java自动化测试-http请求结合抓包工具实际应用

    继上文我编写了java的get请求与post请求之后,我现在开始写一下实际操作 很多人有疑问,接口测试的代码是哪里来的,怎么来的呢?看得见吗?我来做一个简单的演示 我们这里简单介绍一下抓包工具,对于一 ...

  7. Charles for Mac(HTTP 监视器和网络抓包工具)破解版安装

    1.软件简介    Charles 是在 Mac.Linux 或 Windows 下常用的 http 协议网络包截取工具,在平常的测试与调式过程中,掌握此工具就基本可以不用其他抓包工具了.Charle ...

  8. 使用Fiddler对IPhone手机的应用数据进行抓包分析

    原文出自: http://www.cr173.com/html/20064_1.html Fiddler能捕获ISO设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备.  ...

  9. 【抓包分析】Charles和 夜神模拟器 对安卓应用进行抓包分析

    准备工具 : 1 Charles   : https://www.charlesproxy.com  (收费) 2 夜神模拟器  : https://www.yeshen.com  (免费) 2 模拟 ...

随机推荐

  1. e lisp 常用缓冲区函数详解

    e lisp 常用缓冲区函数详解 函数名 函数概要 buffer-name 返回当前缓冲区的名字 buffer-file-name 返回当前缓冲区所指文件的名字,包括路径 current-buffer ...

  2. C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法

    使用反射(Reflect)获取dll文件中的类型并调用方法 需引用:System.Reflection; 1. 使用反射(Reflect)获取dll文件中的类型并调用方法(入门案例) static v ...

  3. ORCFILE IN HDP 2: BETTER COMPRESSION, BETTER PERFORMANCE

    ORCFILE IN HDP 2: BETTER COMPRESSION, BETTER PERFORMANCE by Carter Shanklin   The upcoming Hive 0.12 ...

  4. Zookeeper运维小结--CancelledKeyException

    https://www.jianshu.com/p/73eec030db86 项目中用到storm+kafka+zookeeper,在实际应用中zk和kafka常出问题,这里记录下在使用zk过程中的问 ...

  5. [Java] SpringMVC工作原理之二:HandlerMapping和HandlerAdapter

    一.HandlerMapping 作用是根据当前请求的找到对应的 Handler,并将 Handler(执行程序)与一堆 HandlerInterceptor(拦截器)封装到 HandlerExecu ...

  6. 为什么react的组件要super(props)

    https://segmentfault.com/q/1010000008340434

  7. 在PHP中管理环境变量

    在PHP中管理环境变量 现在我们都能用很多个编程语言开发,当我开始熟悉PHP时,我会忽略其它语言的特点.我用过其他语言(比如Node.js),但在PHP中没有看到一种轻松控制设置环境变量的方法,特别是 ...

  8. C#自动化操作IE浏览器系列之一打开新的浏览器并导航到百度进行搜索

    现在OA系统.生产管理系统都是B/S结构,很多的办公室工作都要用浏览器操作.自己会一点C# winform开发,就做个小工具自动化处理一些繁琐的操作. 我的开发环境是:win7旗舰版+VS2010(或 ...

  9. UVA1608-Non-boring sequences(分治)

    Problem UVA1608-Non-boring sequences Accept: 227  Submit: 2541Time Limit: 3000 mSec Problem Descript ...

  10. Python中使用class(),面向对象有什么优势 转自知乎

    https://www.zhihu.com/question/19729316 首先我是辣鸡,然后这个问题的确有点意思 首先,类是一个集合,包含了数据,操作描述的一个抽象集合 你可以首先只把类当做一个 ...