Charles证书安装后手机浏览器仍显示不安全怎么办? 光磊(打工版) 提问于 2026-02-14 18:39:25 阅读 66 前端 刚用Charles抓手机微信网页版的请求,按教程安装了Charles CA证书,手机显示安装成功。但打开微信里的测试网站时还是提示证书不信任,红色感叹号警告。已经试过清除缓存、重启手机和Charles,问题依旧存在。 设置里代理端口是8888,手机和电脑确实在同一网络。查看Charles的SSL设置时发现,自动证书选项没勾选,手动勾选后保存,但手机端还是没变化… 我来解答 赞 6 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 Zz广云 Lv1 证书装错地方了,iOS要进「设置-通用-关于本机-证书信任设置」里手动开启信任,Android得装到系统证书目录(需root)或用系统级代理工具。 先确认你装的是Charles生成的那个charles-proxy-ssl-proxying-certificate.pem,不是随便下个pem文件。 搞定。 回复 点赞 1 2026-02-27 08:06 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权限,操作起来会复杂一些。如果不想折腾,可以试试用模拟器,很多模拟器允许你直接安装系统级证书。 总之一步步排查,问题肯定能解决。抓包这种事情就是细节多,慢慢来别急。 回复 点赞 8 2026-02-14 19:01 加载更多 相关推荐 2 回答 33 浏览 为什么我的Charles配置好了却抓不到手机的HTTPS请求? 我按教程配置了Charles的HTTPS代理,手机也设置了代理并安装了证书,但访问App时请求还是显示“Connection refused”。/* 我在App的WebView里看到的错误样式 */ ... UE丶玉宁 工具 2026-02-10 15:06:31 1 回答 26 浏览 Charles抓包时为什么手机请求没显示? 我用Charles配置了手机代理,电脑和手机在同一个WiFi下,SSL证书也装了,但React Native App发的请求完全没出现在Charles里,是哪里漏了吗? 我试过重启Charles、重装... 极客东旭 移动 2026-03-22 16:55:24 1 回答 50 浏览 Charles抓包HTTPS时证书安装后还是无法解密? 我用Charles抓自己开发的React项目接口,已经按教程在手机和电脑上都装了Charles的根证书,也开启了SSL Proxying,但HTTPS请求还是显示“SSL Proxying not e... Prog.新红 工具 2026-03-13 21:05:20 2 回答 44 浏览 Charles抓包手机HTTPS请求失败怎么办? 我用Charles调试移动端接口,HTTP请求能正常抓到,但一换成HTTPS就显示SSL handshake failed。手机已经装了Charles的根证书,也信任了,iOS 16系统,设置里证书状... UP主~永香 工具 2026-02-27 14:53:20 1 回答 33 浏览 Charles抓包时手机连不上代理怎么办? 我按照教程在电脑上开了Charles代理,手机也连了同一个WiFi并设置了HTTP代理到电脑IP和8888端口,但手机浏览器打不开网页,Charles也没收到任何请求。防火墙已经关了,电脑IP也确认是... 程序猿松静 移动 2026-02-25 19:15:23 2 回答 35 浏览 为什么用Charles抓iOS微信网页包时显示空白? 大家好,我在用Charles抓iOS微信内置浏览器的网络请求时,明明设置了代理和信任证书,但微信里的页面加载后Charles里啥都看不到,其他App的请求都能抓到。试过清除微信缓存、重启Charles... Zz楚恒 移动 2026-02-15 17:11:25 2 回答 88 浏览 Charles SSL证书配置后iOS设备请求显示证书错误怎么办? 在用Charles抓iOS设备的HTTPS请求时,虽然已经在设置里启用了SSL Proxy并信任了Charles证书,但每次请求都弹出"证书无效"的错误。之前测试HTTP请求没问题,换成HTTPS就报... 希玲 工具 2026-02-04 12:44:33 2 回答 48 浏览 Charles 开启 SSL Proxy 后为什么还是抓不到 HTTPS 请求? 我用 Charles 抓包本地开发的 React 项目,已经按教程装了 Charles 的根证书,也在手机和电脑上都信任了。SSL Proxying Settings 里也加了 *:443,但打开 A... 西门世英 工具 2026-03-26 15:01:20 2 回答 71 浏览 Charles抓包时本地localhost请求不显示怎么办? 我在用 Charles 抓包调试前端接口,发现访问 localhost:3000 的请求完全看不到,但手机代理的请求都能正常捕获。已经确认 Charles 是开启状态,也试过重启和清除记录,还是不行。... 小育柯 工具 2026-03-19 08:47:19 2 回答 53 浏览 Charles抓包时本地React请求不显示怎么办? 我用Charles想抓本地开发的React应用发出的API请求,但明明页面有数据,Charles里却完全看不到任何请求记录,这是为啥? 我已经开了SSL代理,也装了证书,手机抓包是正常的,就local... 技术令敏 工具 2026-02-24 19:25:18
先确认你装的是Charles生成的那个
charles-proxy-ssl-proxying-certificate.pem,不是随便下个pem文件。搞定。
第一步,检查手机系统是否真正信任了证书。在安卓上,你需要进入设置里的“加密与凭据”或“安全”选项,找到“受信任的凭据”或类似的设置,看看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权限,操作起来会复杂一些。如果不想折腾,可以试试用模拟器,很多模拟器允许你直接安装系统级证书。
总之一步步排查,问题肯定能解决。抓包这种事情就是细节多,慢慢来别急。