准备工作
1. win10上安装Charles -->下载地址 (注:官方版本如果不付费的每30分钟就会断开)
2. 打开Charles进行设置
- PC端
-
Proxy-> Windows Proxy 这个去掉勾选,这样就不会整个电脑都走代理了
-
Proxy-> Proxy Settings -> HTTP Proxy ->Port 设置代理的端口号如8888
-
Proxy-> Proxy Settings -> SSL Proxying -> Enable SSL Proxying 这个要勾选,使得Charles拦截和代理SSL请求
-
Proxy-> SSL Proxying Settings -> Include -> Location 在这个框下点击ADD,添加让Charles监听的SSL站点,使用*号作为通配符匹配任意站点。
- 点击ok
- 模拟器端(Android Studios的模拟器 Android 6 版本)
- 点击右侧的 "...",进入设置页面
- 点击左侧边栏的Settings
- 点击右侧界面的Proxy标签,进入代理设置页面
- 点中Manual proxy configuration
-
Host name填入电脑ip地址,Port number填入在Charles设置的端口号,如8888
- 点击APPLY
- 打开模拟器中的浏览器输入cls.pro/ssl,并按照提示下载证书,之后会在电脑Charles端弹出一个提示,点击allow就好了
- 真机可能需要在 设置->安全->从SD卡安装证书 选择下载的证书手动安装,之后在 信任的凭据->用户 下可以看到安装的证书
遇到的坑
- 提示SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations
解决方案:把目的ip添加到Proxy-> SSL Proxying Settings -> Include -> Location下(这一点很奇怪,这是网上查的方法,我设置之后也少了很多红色unknown,但是*号应该是包含所有host地址的,不知道为什么还需要手动添加host)
- 手机端设备设置代理之后,访问cls.pro/ssl失败,提示超时,手机无法上网(已确认电脑与手机在同一网段内)
解决方案:关闭Windows防火墙。控制面板->更新和安全->windows安全中心->防火墙和网络保护->把网络的防火墙给关掉(可能需要重启,之前charles一直没有弹出allow的提示框,重启之后才弹出)
- 出现蓝色的unknown
解决方案:设置DNS
- 提示You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Help...
解决方案:重新下载安装证书
Windows使用Charles对模拟器/真机进行抓包 问题记录