目录
1、Charles原理
2、Charles破解
3、设置抓取https协议
4、手机链接Charles配置
5、代理设置成功,从新发起网络请求,解密过的请求数据出如今Charles主界面,ok! java
Charles下载地址: https://www.charlesproxy.com/download/ web
下载地址: https://www.zzzmode.com/mytools/charles/ 浏览器
一、输入RegisterName(此名称随意,用于显示 Registered to xxx) 二、选择本地已安装的版本,点击生成,并下载Charles.jar文件 三、Mac安装地址:替换本地 /Applications/Charles.app/Contents/Java 目录下的Charles.jar文件 Windows安装地址:替换本地安装目录下的charles.jar文件
Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4
重启Charles,点击Tools -> help,第二栏显示Registered to xxx, 即破解成功!(破解成功后的charles在启动时,左下角的倒计时也没有了)服务器
一、Proxy端口设置网络
选中“Charles -> Proxy -> Proxy Settings”,设置Port为8888,选中“Enable transparent HTTP proxying”选项;app
二、在弹框中选择“Grant Privileges”信任;若是点击“Not Yet”或者关闭按钮,Charles将会取消Mac代理,须要手动设置,设置时会再次弹出窗口;加密
三、SSL证书-安装与信任三种证书:钥匙串根证书,模拟器证书,手机和浏览器证书spa
选择安装 Help -> SSL Proxying -> 如下三项证书:.net
Install Charles Root Certificate; #钥匙串根证书,选择始终信任,输入电脑密码 Install Charles Root Certificate on a Mobile Devices Or Remote Browser #手机和浏览器证书,在弹框提示下安装手机ssl证书到手机
打开钥匙串,Charles Proxy CA证书,一开始是不被信任的;选择始终信任,输入电脑密码;3d
四、SSL代理和端口号设置
https请求被拦截:https请求会显示unkonwn 就是不能解析https请求;
(1)Proxy-> SSL Proxying Settings->SSL Proxying,选中"Enable SSL Proxying"; (2)添加host,端口号为443。这里是把全部的host都设置进去;固然也能够设置指定的host,端口不变; (3)请求就能够解析出来了
注意:手机的无线网要和电脑的无线网保持一致,必须是同一wifi;
4.1查看电脑的ip地址,有如下3种方式:
4.2手机链接Charles抓包配置
(1)打开手机的HTTP代理,服务器为电脑的IP,端口号为8888; (2)手机端访问网络,Charles会弹出确认窗,点击Allow(注意:首次设置代理,须要在手机浏览器上安装证书;在手机浏览器中输入:chls.pro/ssl 下载证书;详情看4.3); (3)不须要抓包时,把手机代理恢复默认值,不然拖慢网速;
4.3查看https请求时,手机端需安装Charles的CA证书。安装SSL证书到手机设备时,Charles会弹框提示,选择“Allow”:
4.4手机受权
手机安装地址:chls.pro/ssl,直接在手机浏览器的地址栏输入,安装容许就行了;
安卓手机可直接受权,IOS手机则须要在“设置->通用”中打开相应的权限;
一、设置->通用->关于本机->证书信任设置,打开Charles Proxy CA的开关信任此证书; 二、设置->通用->描述文件与设备管理,打开Charles Proxy CA的开关信任此证书;
为何要装Charles根证书:
由于Charles最终代理咱们的ssl流量是要发回给咱们的,而这个过程是咱们和本地Charles代理的ssl通讯,若是咱们没有Charles签发的根证书,那么咱们将没法信任Charles转发的任何ssl流量。
另外因为咱们在Charles里面设置了和服务器对应的客户端证书PKCS12格式的包文件(pkcs12中包含被根证书签出来的公私钥),因此咱们能够解密由指定host服务器发送过来的加密的数据,从而像抓包http包同样看到这些数据包里面的数据。Charles负责代替咱们和该服务器发送接收加密数据,而咱们还须要和Charles自己再进行一次通讯,这样说应该就比较明确了。
推荐一篇颇有趣的博客:乱码的原因 —— SSL 加密 【往下翻一点,让小明带你走入SSL加密的世界吧~】