使用的是charles-window。之前使过fiddler但是感觉并没有charles好用以及一目了然。
链接: https://pan.baidu.com/s/1NMNXa8M4niLObQKIsCNL3A 提取码: 2wsa
安装包可以通过连接下载,官网的下载速度简直慢到......下载完正常安装就可以。
操作流程:
1:配置charles
设置不代理计算机的请求
proxy ->取消勾选 windows proxy (勾选则抓取计算机的请求)
设置代理https并添加证书
https的请求需要添加证书,无论是charles还是手机端都需要安装证书。
1.设置charles
proxy -> SSL Proxy Settings 弹出一个 ssl代理设置界面
勾选Enable SSL Proxying,点击Add添加需要抓包的host,添加默认端口号443。
还是当前弹窗,选中Client Certificates,添加域名的证书,操作一样。
- 关心域名的重点显示,在抓包的时候域名会背景黄色重点显示
View -> Foucused Hosts 用于设置重点关心域名,在列表中会独立显示
添加域名和之前操作一样。
- 安装charles证书
Help -> ssl proxy -> Install Charles Root Certificate
点击“安装证书”
之后就点下一步完成就可以了。以上pc端的证书配置完成,接下来配置手机端。
查看手机端所需配置
Help -> ssl proxy -> Install Charles Root Certificate on a Moblie Device or Remote Browser
1,可以看到一个弹窗给出了手机端需要配置的域名和端口,域名就是172.xxx.xx.117,端口号就是8888。接下来配置手机中的wifi设置,需要电脑和手机连接同一个wifi,在手机端中修改当前wifi设置,将代理选择手动,服务器主机名填入域名,服务器端口输入8888。手机域名配置完成
2,打开浏览器输入“chls.pro/ssl”回车会进入charles证书下载,加载之后是一个.pem文件,需要重命名更成成.crt后缀,这是手机端的证书安装包,直接打开安装即可,证书的名称可以自己命名。注:.pem文件保留下来,后面需要用到。
****正常来说步骤到现在一般的抓包就完成了,但是如果你的手机是安卓7以后的版本,就会失败 一直是“unknow”。应用程序不再信任用户或管理员添加的CA用于安全连接。
解决办法:
配置文件中添加:
<application
...
android:networkSecurityConfig="@xml/network_security_config"
>
在res/xml中添加“network_security_config.xml”文件。
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
<domain-config>
<domain includeSubdomains="true">api.xj.mydeertrip.com</domain>//需要抓包的域名
<trust-anchors>
<certificates src="@raw/charles"/>//手机中下载的.pem格式证书文件 名称
</trust-anchors>
</domain-config>
</network-security-config>
其中charles是.pem文件名,就是手机中下载的.pem证书文件放入工程的res/raw文件夹中即可。
此时在安装app即可发现charles有报文了