Charles 配合 Android 模拟器对 HTTPS 请求进行抓包
准备工作
- Charles
- Android 模拟器(或者真机)
- 要抓包的APP
开始抓包
1.Charles启动HTTP代理服务


2.安卓模拟器配置HTTP代理

设置->WLAN->长按->修改网络设置->手动设置代理
3.安装 SSL 根证书


安卓模拟器通过浏览器访问 chls.pro/ssl 并下载

点击以安装证书。然后打开 设置->安全->信任的凭证会看到刚才安装好的ssl证书:

4.APP触发网络请求,观察Charles

可以看到,请求是加密的,此时看不到,需要开启 SSL Proxy。
5.开启 SSL Proxy

成功解密HTTPS传输内容
总结
Charles、Fiddler 这类工具通过往系统导入根证书来实现 HTTPS 流量解密,充当中间人角色。要防范真正的 HTTPS 中间人攻击,网站方需要保管好自己的证书私钥和域名认证信息,为了防范不良 CA 非法向第三方签发自己的网站证书,还要尽可能启用 Certificate Transparency、HTTP Public Key Pinning 等策略;用户方不要随便信任来历不明的证书,更不要随意导入证书到根证书列表,还要养成经常检查常用网站证书链的习惯。
参考: