You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Android配置node-http-mitm-proxy证书解决SSL证书未知错误

解决node-http-mitm-proxy Android端HTTPS证书未知错误的方案

问题本质

这个错误完全是因为Android设备不认node-http-mitm-proxy生成的根证书,和Charles的逻辑一样——必须让系统把代理的根证书加入信任列表,才能正常拦截HTTPS流量。

具体操作步骤

1. 找到代理的根证书

node-http-mitm-proxy默认会在你的用户目录下生成证书文件夹:

  • macOS/Linux:~/.http-mitm-proxy
  • Windows:C:\Users\[你的用户名]\.http-mitm-proxy
    里面的ca.pem就是你要找的根证书。如果启动代理时自定义了证书路径,就去对应的路径找这个文件。

另外,也可以在手机连好代理后,打开浏览器访问http://mitm.it,页面会自动识别Android设备,直接提供证书下载按钮,更省事。

2. 在Android上安装并信任证书

普通非root设备

  • 打开系统设置,找「安全」「隐私」这类选项,选「从存储安装证书」。
  • 找到传过来的ca.pem,给证书起个好记的名字(比如“MITM代理根证书”),一定要选「VPN和应用」作为用途——如果选仅WiFi,Chrome或者你的自有应用可能不认。
  • 跟着提示完成安装,系统就会信任这个证书签的所有二级证书了。

Android 7.0及以上的特殊处理

从Android 7开始,系统默认不信任用户装的证书,除非应用自己开了权限:

  • 如果你是自己开发的应用,在AndroidManifest.xml的application标签里加一行:
    <application android:networkSecurityConfig="@xml/network_security_config">
    
  • 然后在res/xml目录下新建network_security_config.xml,内容写:
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config>
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    

这样你的应用就会认可用户安装的证书了。

Chrome浏览器的额外设置

就算系统装了证书,Chrome可能还是弹警告,你可以:

  • 在地址栏输chrome://flags/#allow-insecure-localhost,开启「允许不安全的本地主机」(因为代理是桌面本地IP,这个选项刚好适配);
  • 或者输chrome://settings/certificates,检查证书有没有出现在「用户」标签页里,确保安装成功。

3. 验证效果

重启代理和手机上的Chrome/自有应用,再访问HTTPS网站,应该不会再弹出私密连接警告,代理的HTTPS_CLIENT_ERROR也会消失。

内容的提问来源于stack exchange,提问作者stoefln

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:46:14