Charles证书安装后手机浏览器仍显示不安全怎么办? 光磊(打工版) 提问于 2026-02-14 18:39:25 阅读 31 前端 刚用Charles抓手机微信网页版的请求,按教程安装了Charles CA证书,手机显示安装成功。但打开微信里的测试网站时还是提示证书不信任,红色感叹号警告。已经试过清除缓存、重启手机和Charles,问题依旧存在。 设置里代理端口是8888,手机和电脑确实在同一网络。查看Charles的SSL设置时发现,自动证书选项没勾选,手动勾选后保存,但手机端还是没变化… 我来解答 赞 3 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 UP主~子涵 Lv1 首先你要确认几个关键点,不然问题可能一直存在。先说一下为什么会出现这个情况吧。Charles抓HTTPS请求时需要中间人攻击的方式来解密HTTPS流量,这就要求设备信任Charles的根证书。虽然你已经安装了证书,但有些系统或者应用对证书的信任机制有额外的要求,尤其是安卓和iOS这种比较严格的操作系统。 第一步,检查手机系统是否真正信任了证书。在安卓上,你需要进入设置里的“加密与凭据”或“安全”选项,找到“受信任的凭据”或类似的设置,看看Charles证书是不是被标记为受信任。如果没有,手动启用它。iOS的话稍微麻烦一点,苹果从iOS 10.3开始要求用户手动启用完全信任,你需要去“设置-通用-关于本机-证书信任设置”,找到Charles证书并开启完全信任。 第二步,确保你的代理设置是正确的。你说代理端口是8888,这个没问题,但还需要确认手机上的Wi-Fi代理设置是否指向了正确的电脑IP地址。可以在电脑上打开命令行,运行 ipconfig(Windows)或者 ifconfig(Mac/Linux),找到当前网络的IPv4地址,然后在手机Wi-Fi设置里填入这个地址和端口8888。 第三步,检查Charles的SSL设置。你提到手动勾选了SSL代理,但这里要注意,仅仅勾选“Enable SSL Proxying”还不够,你还需要明确指定要抓取的域名。打开Charles,点击菜单栏的“Proxy-SSL Proxying Settings”,在弹出的窗口里添加一个新规则,比如把域名写成 *.weixin.qq.com 或者直接用通配符 * 来匹配所有域名。这样Charles才知道哪些流量需要解密。 第四步,微信的网页版可能使用了一些特殊的证书校验机制,导致即使你配置好了Charles,它还是会认为证书不安全。这种情况你可以尝试在微信里关闭“安全浏览”功能,具体路径是“我-设置-通用-安全浏览”,把它关掉再试试。 如果以上步骤都试过了还是不行,可以考虑换一种方式抓包。比如用Fiddler试试,它的证书管理机制稍微简单一点,或者直接用手机自带的开发者工具(如果有的话)。还有一种可能是微信的某些版本对抓包做了更严格的限制,那你可能需要更新Charles到最新版本,甚至考虑换个抓包工具。 最后提醒一下,如果你用的是安卓7.0及以上版本,系统默认只信任系统级证书,而Charles证书是用户级的,这会导致一些应用直接忽略你的证书设置。解决办法是把Charles证书转换成系统级证书,但这需要root权限,操作起来会复杂一些。如果不想折腾,可以试试用模拟器,很多模拟器允许你直接安装系统级证书。 总之一步步排查,问题肯定能解决。抓包这种事情就是细节多,慢慢来别急。 回复 点赞 3 2026-02-14 19:01 加载更多 相关推荐 2 回答 15 浏览 为什么我的Charles配置好了却抓不到手机的HTTPS请求? 我按教程配置了Charles的HTTPS代理,手机也设置了代理并安装了证书,但访问App时请求还是显示“Connection refused”。/* 我在App的WebView里看到的错误样式 */ ... UE丶玉宁 工具 2026-02-10 15:06:31 1 回答 6 浏览 为什么用Charles抓iOS微信网页包时显示空白? 大家好,我在用Charles抓iOS微信内置浏览器的网络请求时,明明设置了代理和信任证书,但微信里的页面加载后Charles里啥都看不到,其他App的请求都能抓到。试过清除微信缓存、重启Charles... Zz楚恒 移动 2026-02-15 17:11:25 1 回答 65 浏览 Charles SSL证书配置后iOS设备请求显示证书错误怎么办? 在用Charles抓iOS设备的HTTPS请求时,虽然已经在设置里启用了SSL Proxy并信任了Charles证书,但每次请求都弹出"证书无效"的错误。之前测试HTTP请求没问题,换成HTTPS就报... 希玲 工具 2026-02-04 12:44:33 2 回答 198 浏览 Charles修改响应内容后浏览器不显示更改,是怎么回事? 我在用Charles拦截API请求时,通过Edit功能把返回的isSuccess字段改成true,保存后浏览器还是显示失败页面。这是哪里出问题了? 我的React代码是这样写的,明明应该渲染成功提示啊... W″芯依 工具 2026-02-05 19:51:33 1 回答 34 浏览 Charles录制时Post请求的响应数据怎么没显示? 用Charles抓包调试接口时发现,发送的Post请求在Recording里能看到请求头和参数,但响应数据栏一直是空的。 我用fetch发送的POST请求是这样的: fetch('/api/... Top丶利云 工具 2026-02-15 21:58:25 2 回答 25 浏览 Charles反向代理配置后请求被拦截怎么办? 用Charles设置反向代理把localhost:8080映射到第三方接口,但请求还是走的原始地址,Proxy设置已经开启SSL拦截了 按官方教程配置了映射规则:请求URL: /api/* 反向URL... 程序员志鸽 工具 2026-02-06 20:15:25 2 回答 34 浏览 Charles DNS Spoofing设置后接口请求没被劫持怎么办? 在React项目开发时用Charles配置了DNS Spoofing,想拦截测试环境接口,但发现请求还是走的原地址。已经确认手机和电脑在同一网络,证书也安装了,规则里写了.*api.test.com,... 秀丽 工具 2026-02-03 22:31:26 2 回答 61 浏览 Charles设置了DNS Spoofing后域名还是被解析到外网IP怎么办? 用Charles抓小程序网络请求时,想通过DNS Spoofing把api.example.com指向本地调试接口。按教程配置了Hosts映射规则并启用DNS Spoofing,手机也连了代理,但访问... 远香 工具 2026-01-29 21:46:30 1 回答 40 浏览 Charles过滤规则设置后没生效,该怎么排查? 在用Charles过滤某个域名的API请求时,按照文档设置了Include规则,但调试时相关请求还是显示不出来,这是怎么回事? 我尝试在Filter -> Recording Filters里写... 诸葛佳鑫 工具 2026-01-29 17:36:30 2 回答 62 浏览 Charles Compose中如何动态替换变量?请求体里的参数总是显示原始占位符 我在用Charles的Compose功能构造POST请求时遇到问题,想在请求体里动态替换变量,但发送后请求体还是显示原始占位符比如${username}。 我已经在Map Request里设置了变量u... 艳青 工具 2026-01-28 07:00:28
第一步,检查手机系统是否真正信任了证书。在安卓上,你需要进入设置里的“加密与凭据”或“安全”选项,找到“受信任的凭据”或类似的设置,看看Charles证书是不是被标记为受信任。如果没有,手动启用它。iOS的话稍微麻烦一点,苹果从iOS 10.3开始要求用户手动启用完全信任,你需要去“设置-通用-关于本机-证书信任设置”,找到Charles证书并开启完全信任。
第二步,确保你的代理设置是正确的。你说代理端口是8888,这个没问题,但还需要确认手机上的Wi-Fi代理设置是否指向了正确的电脑IP地址。可以在电脑上打开命令行,运行
ipconfig(Windows)或者ifconfig(Mac/Linux),找到当前网络的IPv4地址,然后在手机Wi-Fi设置里填入这个地址和端口8888。第三步,检查Charles的SSL设置。你提到手动勾选了SSL代理,但这里要注意,仅仅勾选“Enable SSL Proxying”还不够,你还需要明确指定要抓取的域名。打开Charles,点击菜单栏的“Proxy-SSL Proxying Settings”,在弹出的窗口里添加一个新规则,比如把域名写成
*.weixin.qq.com或者直接用通配符*来匹配所有域名。这样Charles才知道哪些流量需要解密。第四步,微信的网页版可能使用了一些特殊的证书校验机制,导致即使你配置好了Charles,它还是会认为证书不安全。这种情况你可以尝试在微信里关闭“安全浏览”功能,具体路径是“我-设置-通用-安全浏览”,把它关掉再试试。
如果以上步骤都试过了还是不行,可以考虑换一种方式抓包。比如用Fiddler试试,它的证书管理机制稍微简单一点,或者直接用手机自带的开发者工具(如果有的话)。还有一种可能是微信的某些版本对抓包做了更严格的限制,那你可能需要更新Charles到最新版本,甚至考虑换个抓包工具。
最后提醒一下,如果你用的是安卓7.0及以上版本,系统默认只信任系统级证书,而Charles证书是用户级的,这会导致一些应用直接忽略你的证书设置。解决办法是把Charles证书转换成系统级证书,但这需要root权限,操作起来会复杂一些。如果不想折腾,可以试试用模拟器,很多模拟器允许你直接安装系统级证书。
总之一步步排查,问题肯定能解决。抓包这种事情就是细节多,慢慢来别急。