Ubuntu20(桌面)开发环境web抓包之Charles
常用的专用抓包工具有 wireshark、fiddler、tcpdump,首先wireshark很强大但还是比较倾向于底层tcp/udp/rctp或串口等,fiddler无非web抓包使用最广泛的工具之一,但可惜Linux环境下只能使用mono-complete(这玩意太难安装,而且卸载不好操作系统跑不了),最后tcpdump通常还是在Linux服务器上用的多(无界面,本地开发环境调试不友好)。
最后使用Charles-proxy可在本地Linux桌面开发环境完全代替fiddler,它由Java开发跨平台,大众化(一点遗憾就是商业不友好,但下面会说明Crack),下面说明一下Charles-proxy在ubuntu19(desktop)下安装踩坑笔记:
1,下载Charles-proxy
1.1 (需破解) 官网下载https://www.charlesproxy.com/assets/release/4.5.6/charles-proxy-4.5.6_amd64.tar.gz
1.2 (已破解)链接:https://pan.baidu.com/s/1sOBuMnQtT9CF5q1RP3qDrg 提取码: 1hbf
2,破解(使用已破解版忽略)
参考:https://gitee.com/wl4g/Charles-Crack
3,安装(以ubuntu19为例)
3.1 解压安装
tar -xf charles-proxy-4.5.6_amd64.tar.gz -C /usr/local/
3.2 配置Ubuntu桌面图标
sudo vim usr/share/applications/charles.desktop
[Desktop Entry]
Name=Charles Proxy
Type=Application
Exec=/usr/local/charles-proxy-4.5.6_amd64/charles/bin/charles
Terminal=false
Icon=/usr/local/charles-proxy-4.5.6_amd64/charles/icon/64x64/apps/charles-proxy.png
Comment=Proxy Tool
NoDisplay=false
Categories=Development Proxy;
Name[en]=Charles
此时在“显示应用程序”搜索“charles”即可出现logo图标
4,双击启动Charles(例:配置PC和iOS端https抓包)
4.1 PC信任证书配置:
首先可直接在Charles软件上自动安装,点击 Help -- SSL Proxying -- Install Charles Root Certificate
若自动安装报错,则可手动拷贝证书安装,复制charles的pem格式的根证书,重命名为 .crt格式(crt是客户端证书)
cd ~/.charles/ca/
cp charles-proxy-ssl-proxying-certificate.pem charles-proxy-ssl-proxying-certificate.crt
# 若直接修改后缀后面添加信任不成功,则使用openssl显示转换
# openssl x509 -outform der -in charles-proxy-ssl-proxying-certificate.pem -out charles-proxy-ssl-proxying-certificate.crt
添加到Ubuntu系统并信任它
sudo cp charles-proxy-ssl-proxying-certificate.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
# 此时可以看到已被添加进去了
# cat /etc/ssl/certs/charles-proxy-ssl-proxying-certificate.pem
# update-ca-certificates命令将PEM格式的根证书内容附加到/etc/ssl/certs/ca-certificates.crt ,而/etc/ssl/certs/下包含了系统自带的各种可信根证书.
删除证书:
sudo rm -f /usr/local/share/ca-certificates/证书名称.crt
sudo update-ca-certificates
4.1.2 chrome设置 -> 管理证书(可搜索“证书”) -> 授权中心
然后仔细一个个找 Charles开头的证书,然后 编辑 信任都打钩:
4.1.3 然后打开Charles配置代理监听端口
Proxy -> Proxy Settings…
只抓普通web包就配http即可,然后配置 系统全局代理
最后重启chrome,打开任意https网页即可看到被拦截的记录
终于见到同fiddler熟悉的抓包界面了。。。
4.2 iOS信任证书配置:
4.2.1 Help -> SSL Proxying -> Install Charles root certrate on Mobile device or Remote browser
4.2.2 确保iPhone与Ubuntu在统一WiFi下,然后在iPhone设置网络链接中配置Charles代理地址,如:192.168.0.6:8888
再使用Safari浏览器(其他浏览器不行) 访问地址: chls.pro/ssl 随后会提示 正在下载描述文件 点击安装即可。
最后进入:设置-> 通用 -> 描述文件 -> 找到Charles的证书 点击安装 即可
再添加信任: 设置-> 通用 -> 关于本机 -> 证书信任设置 -> 找到Charles的证书 点击信任 即可
随后iPhone上打开任意https网址,即可从 ubuntu Charles上看到请求记录