使用 Charles 抓包 iOS 上的 HTTPS 请求

概述

配置手机代理确保可以正常抓包 HTTP 请求
在手机上安装 Charles 的根证书
配置 Charles 启用 HTTPS 抓包
重要:为什么不把 Host 直接配置为 *

1. 配置手机代理确保可以正常抓包 HTTP 请求

 此时 HTTPS 的请求会显示为 unknown 无法查看

2. 在手机上安装 Charles 的根证书

  • 获得证书下载地址

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

    该地址在不同版本的 Charles 下可能不同,以实际获取到的为准

  • 在手机上下载并安装证书

    在手机浏览器中输入刚刚获得的 Charles 根证书下载地址

    在弹出的界面中点击右上角的“安装”,如需要密码验证,输入该手机的解锁密码后继续安装

直到界面出现 ”已验证√“ 点击“完成”即成功安装证书
  • 信任安装的证书(iOS 10+)

    iOS 10 以上的系统还需要 设置 -> 通用 -> 关于本机 -> 证书信任设置 ,信任刚才安装的证书

3. 配置 Charles 启用 HTTPS 抓包

  • Charles: Proxy -> SSL Proxy Settings
  • Enable SSL Proxying -> Add
  • 在 Host 和 Port 中填入想要抓包的域名和端口

4. 重要:为什么不把 Host 直接配置为 *

对所有 HTTPS 请求进行配置,确实可以正常抓包挖财的请求。
但是,并非所有的 HTTPS 请求都可以用上述方法进行抓包。
例如 Apple 的大部分请求都会启用 SSL Pinning 以防止用户信任错误的证书。
将 Host 配置为 * 会导致 App Store 无法访问、企业证书无法信任等问题!

你可能感兴趣的:(使用 Charles 抓包 iOS 上的 HTTPS 请求)