Charles证书安装后手机浏览器仍显示不安全怎么办?

光磊(打工版) 阅读 31

刚用Charles抓手机微信网页版的请求,按教程安装了Charles CA证书,手机显示安装成功。但打开微信里的测试网站时还是提示证书不信任,红色感叹号警告。已经试过清除缓存、重启手机和Charles,问题依旧存在。

设置里代理端口是8888,手机和电脑确实在同一网络。查看Charles的SSL设置时发现,自动证书选项没勾选,手动勾选后保存,但手机端还是没变化…

我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
UP主~子涵
首先你要确认几个关键点,不然问题可能一直存在。先说一下为什么会出现这个情况吧。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