十分钟学会Charles抓包(iOS的http/https请求)


  • Charles安装
  • HTTP抓包
  • HTTPS抓包

1. Charles安装

官网下载安装Charles:
https://www.charlesproxy.com/download/

2. HTTP抓包

(1)查看电脑IP地址
(2)设置手机HTTP代理

手机连上电脑,点击“设置->无线局域网->连接的WiFi”,设置HTTP代理:
服务器为电脑IP地址:如192.168.1.169
端口:8888

设置代理后,需要在电脑上打开Charles才能上网

(3)电脑上打开Charles进行HTTP抓包

手机上打开某个App或者浏览器什么的,如果不能上网,检查前面步骤是否正确

点击“Allow”允许,出现手机的HTTP请求列表

�HTTP抓包

3. HTTPS抓包

在进行App测试或定位线上问题时,经常会遇到抓取HTTPS数据包的需求。一般在windows上会使用fiddler,Mac上使用Charles。对于https请求,抓到的数据因为经过了加密,只能看到乱码。

本文介绍如何使用Charles来抓取https网络报文。操作步骤已在MAC + iphone5s上亲测。

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

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

HTTPS的抓包需要在HTTP抓包基础上再进行设置

设置前抓包HTTPS是这样的

设置后抓包HTTPS长这样



以下为在HTTP抓包基础上进行HTTP抓包的进一步设置步骤:

(1)安装SSL证书到手机设备

点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device

出现弹窗得到地址 chls.pro/ssl

手机安装SSL证书的地址

在手机Safari浏览器输入地址 chls.pro/ssl,出现证书安装页面,点击安装
手机设置有密码的输入密码进行安装

�安装证书
  • 注意1:有兄弟姐妹说Safari浏览器输入这个网址chls.pro/ssl安装不了证书的情况,
    亲测要(1)设置好手机HTTP代理 (2)电脑上Charles要开着
  • 注意2:iOS 10.3系统,需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书
    (这里感谢@13002171223的提出这点 ,之前没升级10.3哈)
(2)�Charles设置Proxy

Proxy -> SSL Proxying Settings…

勾选Enable SSL Proxying,点击Add

Host设置要抓取的https接口,比如想抓这个


Host填写: https://api.weibo.cn
Port填写:443

(3)进行HTTPS抓包

让手机重新发送https请求,可看到抓包

HTTPS抓包

注意:不抓包请关闭手机HTTP代理,否则断开与电脑连接后会连不上网
—-愿您有所收获~ end




转自: https://www.jianshu.com/p/5539599c7a25

猜你喜欢

转载自blog.csdn.net/u013651026/article/details/80204902