最近总是看见群里有人问:“为什么我的Charles抓取不到https的包,我的设置应该没问题呀”我身边也有一些初级测试工程师不会Charles的抓包,每次都是手把手的教他们。为了方便以后教学,所以就写了一遍适合初级测试工程师的Charles抓包教程。
在聊Charles抓包前,你需要知道你们公司使用的https是不是免费的SSL?如果是专门花钱买的SSL,那下面我说的这个抓包就不适合你。
iPhone教程:Charles抓包(MAC笔记本)
端口号:8888(Charles默认代理的端口号,是可以修改的)
-
首先在PC打开Charles抓包工具,点击help-->Local IP Address(或者是别的方法找到本PC的IP地址)
-
打开手机的wifi,手机连接wifi和你PC是同一个wifi或者同一个局域网,点击手机连接的wifi详情,找到【http代理】这一栏
-
配置http代理
服务器地址:PC的IP地址
-
在Charles上点击help-->SSL Proxying-->install Charles Root Certificate on a Mobile Device or Remote Browser
-
在iPhone手机的Safari浏览器,输入chls.pro/ssl,浏览器会弹出一个框,点击“允许”
-
打开iPhone手机的设置-->通用-->描述文件点击安装即可
-
打开iPhone手机的设置-->通用-->关于手机-->证书信任设置,开启信任
-
在Charles上点击Proxy-->SSL Proxying settings
host:*
port:443
总结:通过上面的设置,就可以在iPhone手机上实现通过Charles抓取https的包
Android教程:Charles抓包(MAC笔记本)
在介绍Android抓包前,首先要找Android的开发小哥哥确认一下,Android的apk包源码中是否设置了网络适配 network-security-config & cleartextTrafficPermitted
Android9含以上版本必须要设置这个,否则按照下面的操作也无法抓取https的包
服务器端口号:8888(Charles默认代理的端口号,是可以修改的)
-
首先在PC打开Charles抓包工具,点击help-->Local IP Address(或者是别的方法找到本PC的IP地址)
-
打开手机的wifi,手机连接wifi和你PC是同一个wifi或者同一个局域网,点击手机连接的wifi,修改网络,点击“显示高级选择”
-
配置代理
服务器主机名:PC的IP地址
-
在Charles上点击help-->SSL Proxying-->install Charles Root Certificate on a Mobile Device or Remote Browser
-
在Android手机自带的浏览器,输入chls.pro/ssl,浏览器会弹出一个框,点击“立即下载”
下载的内容在:在Android的文件管理-->内部存储-->Download-->Browser
-
在Android手机上点击设置-->安全-->更多安全设置-->加密和凭据-->从存储设备安装-->Browser,点击刚刚下载的文件
-
安装证书
证书名称:任意名称
凭据用途:VPN和应用
-
配置好Charles上点击Proxy-->SSL Proxying settings的设置
总结:通过上述的配置,就可以在Android手机上实现通过Charles抓取https的包
备注:上文中说到Charles默认代理的端口号,是可以修改的。那么这里简单告诉大家在哪里修改,修改后又需要做什么操作呢?
修改位置:打开Charles-->Proxy-->Proxying Setings可以修改port为别的号码(假如修改成9999)。注意:此处修改后,在你手机的代理设置时端口号需要和修改后的端口号保持一致(端口号也必须是9999)