最全面的解决Charles手机抓包的证书问题(步骤非常详细)
发布时间:2025-06-22 19:50:01 发布人:远客网络
一、最全面的解决Charles手机抓包的证书问题(步骤非常详细)
解决Charles手机抓包证书问题的详尽指南
在Android 7.0及更高版本中,手机系统安全升级导致对系统内置根证书的信任问题,影响了Charles抓包的使用。本文将详细阐述如何在iOS和Android系统上配置根证书,以解决抓包中的难题。
首先,确保Charles的证书准备。通常,这些步骤已经足够,但如有需要,可参考其他教程进行深化学习。
对于Android 7.0以上设备,推荐使用VMOS虚拟机。步骤如下:
从Charles导出证书,有两种方式:charles-proxy-ssl-proxying-certificate.crt文件重命名并保存为如"faf57fe3.0"(需替换为你的证书ID),或charles-proxy-ssl-proxying-certificate.pem文件重命名。
将证书拷贝到/system/etc/security/cacerts/目录,确保权限正确。
在VMOS中,设置adb连接(如192.168.50.100:5666),进入设置>其他设置,进行相应配置并重启VMOS。
在VMOS上设置全局代理至Charles服务器地址(如192.168.50.14:8888),这是至关重要的步骤。
对于iPhone,证书安装步骤类似,但具体操作因设备而异。至此,你便能顺利抓包了,无论是从VMOS应用商店下载还是将应用导入,操作都非常简单。
二、Charles对手机抓包的详细配置(HTTP/HTTPS)
系统偏好设置->网络->Wi-Fi
Charles->Help->LocalIPAddress
Mac与iPhone处于同一Wi-Fi网络。
手机-设置-无线局域网-点击连接的Wi-Fi
配置代理-服务器,填写「本机IP地址」
配置代理-端口,填写「8888」,这是Charles的默认端口,如果修改了Charles的端口,那就填写实际的端口
Charles会弹框让你选择是否允许连接,如果要抓包的话,需要选择Allow。
这个时候手机进行HTTP的访问就可以在Charles看到了。
如果手机里面访问的HTTPS协议的,Charles会显示错误unknown,错误信息「SSLProxyingnotenabledforthishost:enableinProxySettings,SSLlocations」
抓取HTTPS的内容要在Charles与手机已经连接成功,并且Charles是打开状态下进行以下设置。
Charles-Help-SSLProxying-InstallCharlesRootCertificate
Charles-Help-SSLProxying-InstallCharlesRootCertificateonaMobileDevice
弹框显示安装地址,我这里显示的是「chls.pro/ssl」,手机访问此地址后进行证书的安装。
证书安装完成后,在「设置-通用-关于本机-证书信任设置-针对根证书启用完全信任」中开启Charles...
配置项在Charles-Proxy-SSLProxyingSettings...
勾选EnableSSLProxying,点击Add,填写Host(你需要抓取的地址)和Port(一般填写443)。Host可以使用通配符,我为了简单省事Host的填写为了,OK后,如果没有自动勾选刚才Add增加的Location,记得手动勾选上,然后再次OK就完成了。
如果手机没有关闭代理的话,当Charles软件关闭的时候,手机访问网络会出现故障
三、如何使用charles对Android Https进行抓包
1、在配置PC端时,首先需要在Charles上安装根证书,之后可能会遇到钥匙串未弹出的情况,这时需要手动打开钥匙串,选择始终信任Charles证书,如图所示。
2、对于移动设备,首先选择安装Charles根证书,接着会收到一个提示框,按照提示操作。接下来,进入手机设置,设置代理的IP和端口号。打开浏览器,访问charlesproxy.com/getssl,安装证书。
3、若遇到其他界面,可以尝试访问,点击安装后面的here链接。
4、配置完成后,可以确保在使用Charles进行Android Https抓包时,设备能够正常信任证书,从而实现对HTTPS流量的拦截和分析。