设备:
电脑:mac book pro
手机:小米10
charles:4.5.6
方法一:
步骤:
首先确保电脑,手机在同一局域网,
-
charles设置代理:proxy -> proxysettings;设置如下:(端口号可以自己设置,默认为8888)
-
手机端设置代理:设置 -> wlan -> 点击你连接的wifi进入详情,找到代理 -> 将代理改为手动,输入你的主机名(就是连接的wifi的ip),输入你设置的端口号,点击保存,(查看IP和你设置的端口号可以在charles中查看,如何查看看第三步)
-
在charles中查看你的IP,端口号,与下载证书的网址:Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser 如下图:
-
当在手机端输入完IP和端口号之后就已经设置好了,可以看一下charles有没有弹出allow或deny的界面,如果没有看第五步
-
注意charles最下方,如果出现
这个提示,需要在 Proxy -> Access Control Setting,把手机ip添加进去,一般是红色框中的,或者在手机端查看(点击你手机所连接的wifi详情,可以看到手机端连接的IP地址),charles设置如下图:
-
设置好之后会在charles中出现弹窗点击allow就好,点击手机断开wifi,重连,重新设置一遍代理,就可以了这个时候就可以上网下载证书啥的。证书网址怎么查看在第三步,(chls.pro/ssl)下载证书,安装就可以了,
-
我用的是UC浏览器,直接访问网址就会直接出现下载提示,要是没有提示就刷新一下浏览器就好,下载好之后在你手机的文件管理中找到你下载的证书,(uc浏览器下载是有一个ucdownloads 这个文件夹下,找到证书,点击安装就好,安装过程中需要指纹解锁或者输入密码)。
方法二:
方法二我没有试过但是应该可以,方法二可以不用去charles网址去下载证书,可以直接在charles中把证书保存到电脑上,通过微信或其他传到手机上
步骤如下:
-
前面charles设置,手机端设置都是一样的,
-
charles保存证书到电脑,Help -> SSL Proxying -> Save Charles Root Certificate… 保存证书到电脑桌面或者什么文件夹(你能找到就行)
-
将证书通过微信传到手机里,手机保存证书,(我的是小米手机)如果直接点击不能安装,可以在wlan -> 高级设置 -> 安装证书,或者在系统安全 -> 加密与凭据 -> 从存储设备安装
如果是用微信保存的证书,在手机的文件管理中,找到保存证书的文件夹,在保存的时候是有路径显示的,记不住可以截图,我的是在downloads文件夹下的weixin文件夹中。
2020,9,4更新
更新一下, 即使按照上面的操作也有可能会在安卓手机上出现有些app或者小程序还是无法抓取到包,这个是因为你的安卓版本太高了,安卓7.0之后的版本针对于证书做了限制,系统不会信任用户自己安装的第三方证书,只会信任系统证书,遇到这种情况,要么使用安卓7.0版本之下的安卓手机抓包,或者使用ios系统抓包,在或者按照网上说的手机root修改代码啥的,能力目前有限还有修改过代码
遇到的坑:
- 在手机端配置好代理之后一直没法上网,就没法上网下载证书,通过微信传证书到手机上安装之后也是不能上网,最后发现是没有把手机的IP保存在charles中,可以用第五步的方法,把手机的IP添加到charles中,而且下面的选项框一定要勾选,我第一次就是添加了ip没有勾选选项框所以没有成功。