文章目录

  • 背景
  • 操作原理
  • 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的域名,可以填写 *.qq
鄙人就填了*:443,外加一个18043端口

第三步