作为一个程序员或者是IT技术爱好者,经常会遇到一些非常好APP或者网站等,需要了解一些底层的细节,或者测试定位出现问题所在,都可以利用抓包的方式,抓取App中的一些数据。
接下来,详细讲解一下如何安装和配置Charles抓包软件,可以更方便的使用抓包软件服务我们。
一、安装Charles
下载Charles抓包软件:https://www.charlesproxy.com/download/(Window、Mac、Linux版本),下载成功之后,默认安装在就可以。
二、配置Mac上的Charles(Window、Linux类似)
Charles作为一个抓包软件,电脑上的软件Charles软件是通过什么技术,实现如何抓取手机或者电脑上的网络请求的数据,通过代理技术实现数据的抓取。下图是代理服务器的工作原理,也是Charles的本质。
1.Charles配置Proxy
1)点击选中Mac电脑作为Proxy(macOS Proxy)
2)设置Proxy的接口:8888,并且支持的传输类型http
2.配置SSL Proxy
在现在网络安全越来越重要的情况下,http请求逐渐要求必须使用https进行安全加密。抓包过程中抓取的https的需要对SSL Proxy进行配置。
1)Mac电脑安装Charles Root Certificate
2)配置Charles Root Certificate
在安装之后,默认是Charles证书是不受信任的
双击证书,修改证书受信:(始终信任)
3)SSL Proxy Setting(必须配置)
SSL(Secure Sockets Layer 安全套接层),继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
SSL的端口:443
Charles在使用SSL时,必须列出每个SSL站点,Charles才能代理该站点。您只应包括要主动调试的SSL站点,以免通过在纯文本中在Charles中记录私人信息来损害安全性。
Charles在抓包https时,必须通过SSL Proxy Setting来设置SSL对应请求的站点。
可以将通配符添加到位置列表以匹配多个或所有位置。要匹配所有位置,请输入*。
对于要代理的站点,它必须既与“包含”位置之一匹配,也与任何“排除”位置都不匹配。在包含位置中使用通配符时,排除位置最有用。(这个是抓取所有,使用者可以根据个人的具体需要进行配置)
三、iPhone和Android手机安装证书
1. 配置手机的Proxy
1)查看Mac电脑的IP地址
iPhone和Android连接的WiFi必须电脑在同一个WiFi下,在设置手机代理,需要查看电脑的IP地址可以通过终端:输入ifconfig,查看en0中电脑的IP地址,或者是Charles上查看IP地址。
2)iPhone设置代理
查看IPhone手机连接的WiFi,点击WiFi后蓝色小圆圈i的图标
进入设置WiFi代理的页面
点击配置代理,编辑设置代理,根据自己的电脑IP和端口设置填写IP和端口号,并存储当前代理。
3)Android设置代理
查看Android连接WiFi页面,查看连接的WiFi,长按连接的WiFi。
编辑连接的WiFi,点击显示高级选项,并配置代理的IP和端口。
2.配置手机上的SSL Certificate
1.下载SSL Certificate有两种方式
1)打开浏览器:输入:chls.pro/ssl,下载手机的证书
2)通过电脑Charles软件下载手机上的证书
1.点击:Help->SSL Proxying->Install Charles Certificate on a Mobile Device or Remote Browser.
2.点击保存证书
点击Help->SSL Proxying->Save Charles Root Certificate…,把保存的证书,传给手机。
2.安装SSL Certificate证书
1)IPhone手机安装
通过电脑,把手机和电脑连接在一起。点击Install Charles Certificate on a Mobile Device or Remote Browser。进行安装。
直接使用浏览器输入:chls.pro/ssl,下载之后提示进入设置页面,安装信任证书。
注意:
如果抓包出现:unknown
查看手机证书是否允许(设置->通用->关于本机->证书信任设置)
2)Android手机安装
下载在Android手机上的证书,或者是电脑导入到手机。一些手机不支持直接安装证书 .pem文件,可以采用把.pem 改成.crt进行安装。如果不行就采用下面的方式。
安装方式:
设置->高级设置->安全->从SD卡安装
注意:手机证书的下载安装,必须配置好Proxy,在下载。如果没配置Proxy,浏览器有时无法下载证书。