Charles是目前最强大的http调试工具之一,在界面和功能上远强于Fiddler,同时是全平台支持,堪称神器,唯一的缺陷是这软件是收费的。可以在网上搜下Charles的破解版安装教程。
Charles可用于截取http和https请求,但是如果不经过一些设置,Charles截取到的https的request和response都是乱码
以app举例: request:
response:
charles截取内容完全是乱码,看不出有用信息。
进行下面的设置后,https就可以抓包了
手机端
下载Charles证书http://www.charlesproxy.com/ssl.zip,解压后导入设备,也可直接下载crt文件导入设备,点击安装。
ios:
安装成功后,在设置->通用->描述文件 中可以看到Charles proxy SSL Proxying 配置文件,点击该配置文件,显示为:
安装完成。。。
android:
一种安装方式是点击文件安装,有些手机会显示“安装失败,无法读取证书文件”
换一种方式:
设置->安全->从SD卡安装
找到证书文件安装的目录,点击文件
填入证书名称(名称可自定义),点击确定
此时,提示“已安装charles”。
PC端
1、在Charles的工具栏上点击设置按钮,选择Proxy Settings…
切换到SSL选项卡,选中Enable SSL Proxying。(别急,选完先别关掉)
2、SSL选项卡的Locations里填写要抓包的域名和端口,点击Add按钮,弹出表单
在弹出的表单中Host填写域名。比如填api.instagram.com,Port填443
到这里,设置结束了。
此时再去用Charles截取先前https的request和response,结果如下:
PS:实践发现,应用市场下载的app,只要知道app的https的请求域名,经过以上设置,也可以直接截取app的请求和返回内容。