您当前的位置:首页 > 互联网教程

最全面的解决Charles手机抓包的证书问题(步骤非常详细)

发布时间:2025-06-22 19:50:01    发布人:远客网络

最全面的解决Charles手机抓包的证书问题(步骤非常详细)

一、最全面的解决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流量的拦截和分析。