首页/教程/用Clash vpn时浏览器提示“连接不是私密连接”怎么办?
CLASH GUIDE

用Clash vpn时浏览器提示“连接不是私密连接”怎么办?

约 7 分钟阅读

Clash VPN时浏览器提示“连接不是私密连接”,根本原因有四种:Clash代理对HTTPS流量进行中间人解密并重签证书但根证书未被系统信任,需将Clash的CA证书导入系统信任库(Windows导入“受信任的根证书颁发机构”,macOS需手动将信任级别设为“始终信任”)。DNS污染导致解析到错误IP触发证书域名不匹配,启用Clash内置DNS并在fallback中配置纯IP地址的DoT服务(如tls://1.1.1.1)通过proxy: Proxy参数让解析走代理通道。系统时间偏差导致证书被判定过期,开启自动时间同步并校准,Android 6及更早设备需手动导入ISRG Root X1证书。浏览器缓存和扩展干扰导致错误持续,清理浏览器缓存和HSTS设置,在无痕模式下测试排除干扰。Node.js等开发环境可通过NODE_TLS_REJECT_UNAUTHORIZED=0临时跳过证书验证(仅限开发调试),生产环境需将Clash根证书导入系统信任库或通过SSL_CERT_FILE环境变量指定证书路径。

代理根证书未被系统信任

Clash的MITM解密导致证书被替换

当Clash VPN启用HTTPS解密或TUN模式时,代理软件会对HTTPS流量进行中间人解密,用自己的自签名根证书重新签发目标网站的证书。如果操作系统的信任库中没有导入Clash的根证书,浏览器会因证书不受信任而拒绝连接,提示“连接不是私密连接”或“ERR_CERT_AUTHORITY_INVALID”。

将Clash根证书导入系统信任库

解决此问题的最可靠方法是将Clash生成的CA根证书导入操作系统的信任库。在Clash Verge Rev或Clash for Windows的「设置」中找到“导出CA证书”或“安装证书”选项,导出根证书文件(.crt格式)。双击证书文件,在安装向导中选择“本地计算机”存储位置,将证书放入“受信任的根证书颁发机构”存储区。在macOS中,双击证书打开钥匙串访问,将其拖入“系统”钥匙串,然后双击证书展开信任选项,将“使用此证书时”设定为“始终信任”

macOS证书信任配置文件损坏

在macOS上,如果ClashX报错SecTrustSettingsCopyCertificates error: -25262,表明系统的证书信任配置文件已损坏。此时即使导入了根证书也无法生效,需重置系统证书信任设置。打开“钥匙串访问”应用程序,在菜单栏中选择“钥匙串访问→偏好设置”,切换到“信任”选项卡,找到“证书信任设置”选项并单击“重置”按钮,确认后重启系统。重置完成后重新导入Clash的根证书并设为“始终信任”。

DNS污染导致解析到错误IP

污染返回错误IP触发证书不匹配

当Clash的DNS配置不当或关闭内置DNS时,敏感域名的解析请求可能直接通过本地运营商DNS发出,返回被污染的IP地址。浏览器尝试连接该错误IP时,对方返回的证书与请求的域名不匹配,触发证书错误,表现为ERR_CERT_COMMON_NAME_INVALID。此时即使Clash已连接节点,浏览器仍提示“连接不是私密连接”。

启用内置DNS并配置fallback

修复DNS污染需启用Clash内置DNS,让境外域名的解析请求通过代理通道发送。在config.yaml中设置dns.enable: trueenhanced-mode: fake-ip,将fallback配置为纯IP地址的DoT服务器(如tls://1.1.1.1),并通过proxy: Proxy参数强制境外域名解析走代理通道。配置后,被污染的域名解析走代理通道获得正确IP,证书错误应消失。

检查Fake-IP模式兼容性问题

Fake-IP模式为域名分配198.18.x.x的虚拟IP,部分依赖真实IP的应用可能连接失败。将不兼容Fake-IP的域名(如银行网站、支付平台)加入fake-ip-filter排除列表,让这些域名走真实DNS解析而非Fake-IP虚拟地址。访问已加入排除列表的域名时,解析结果应为公网IP而非198.18.x.x。

系统时间偏差导致证书验证失败

系统时间与标准时间偏差过大

SSL/TLS证书的有效期依赖于精确的时间戳验证,若设备系统时间与标准时间偏差超过数分钟,证书可能被判定为过期或无效。这在旧Android设备上尤为常见——系统内置的DST Root CA X3证书在2021年9月过期,导致访问Let’s Encrypt签发的网站时证书错误

校准系统时间并同步

在系统时间设置中开启“自动设置时间”并执行同步操作,校准后重启Clash和浏览器。Android 6及更早版本需手动导入ISRG Root X1证书到系统证书存储区(设备需Root)。将证书重命名为6187b673.0,移动到/system/etc/security/cacerts/目录,设置权限为644即可。校准时间后证书验证恢复正常。

浏览器缓存与扩展干扰

清除浏览器缓存和HSTS设置

浏览器缓存的旧证书状态或HSTS设置可能导致特定网站持续报错。在Chrome中进入「设置→隐私与安全→清除浏览数据」,将时间范围选为“所有时间”,勾选“缓存的图片和文件”和“Cookie及其他站点数据”后执行清除。完全关闭并重新启动浏览器,再次访问该网站。若需更彻底清除,进入chrome://net-internals/#hsts删除该域名的HSTS条目。

禁用浏览器扩展排查干扰

部分浏览器扩展(如广告拦截器、代理切换插件)可能干扰Clash的证书处理。在Chrome中逐个禁用扩展程序,每禁用一个后测试网站访问,直到找到导致问题的扩展。若无痕模式下网站正常访问而正常模式不行,说明问题出在浏览器缓存或扩展层面,可逐步禁用扩展排查具体冲突来源

检查浏览器启动参数中的代理配置

Chrome或Edge快捷方式的目标路径中可能包含--proxy-server等启动参数强制指定代理,与Clash的证书处理产生冲突。检查快捷方式属性中的目标路径,若存在--proxy-server="http://127.0.0.1:7890"等参数,移除后重新启动浏览器。在Chrome地址栏访问chrome://settings/system,点击“打开代理设置”确认系统代理已正确指向Clash。

Node.js与开发工具证书错误

Node.js环境跳过证书验证(仅开发环境)

Node.js等开发工具默认启用严格的TLS证书校验,若代理注入自签名证书,会报unable to verify the first certificate错误。临时绕过方法是在启动脚本前设置环境变量NODE_TLS_REJECT_UNAUTHORIZED=0,强制跳过所有证书验证。此方法仅适用于开发或调试环境,禁止在生产环境中使用,会暴露中间人攻击风险

指定CA证书路径的精准方案

将Clash的根证书文件放置在固定路径,通过SSL_CERT_FILE环境变量指向该文件,让Node.js仅信任该证书。在终端中执行export SSL_CERT_FILE="$HOME/clash-ca.crt",或在代码中配置ca_bundle路径。此方案比完全禁用校验更安全,适合需要代理访问API的开发场景。

配置代理排除规则让关键API直连

若部分关键API(如OpenAI、GitHub Copilot)在代理环境下持续证书错误,可在代理配置中为这些域名添加排除规则。在Clash的rules字段中添加DOMAIN-SUFFIX,api.openai.com,DIRECT,让该域名的流量直连不走代理。对于Hermes Agent等工具,在config.yamlno_proxy字段中列出需直连的域名列表

常见问题FAQ

导入根证书后浏览器仍提示证书错误怎么办?

在macOS中确认已手动将证书的信任级别设为“始终信任”,仅导入证书而不开启信任设置无法生效。检查Clash的HTTPS解密功能是否已启用,部分客户端需在设置中显式开启“HTTPS解密”或“MITM”选项。若问题持续,在Clash中将问题网站的域名添加到skip-cert-verify规则的排除列表中,让该域名的流量绕过MITM解密。

证书错误只出现在特定网站怎么办?

特定网站报错而其他网站正常,通常指向DNS污染问题而非证书问题。启用Clash内置DNS,将fallback配置为纯IP地址的DoT服务,并通过proxy参数让境外域名解析走代理通道。若为银行或支付类网站,将该域名加入fake-ip-filter排除列表,让域名走真实DNS解析而非Fake-IP虚拟地址。

Node.js环境下代理导致证书错误如何永久修复?

将Clash根证书导入系统信任库,然后在终端中设置export NODE_TLS_REJECT_UNAUTHORIZED=0仅为临时方案。永久修复需将Clash根证书添加到系统的CA信任库中,或通过NODE_EXTRA_CA_CERTS环境变量指定证书路径。对于企业级应用,建议将根证书复制到/usr/local/share/ca-certificates/并执行update-ca-certificates

开启Clash后旧版Android设备证书错误如何解决?

Android 6及更早版本因内置的DST Root CA X3证书过期导致访问Let's Encrypt签发的网站时证书错误。设备需Root后,下载ISRG Root X1证书,重命名为6187b673.0,移动到/system/etc/security/cacerts/目录,设置权限为644。重启Clash后证书错误应消失
使用提醒

请从可信来源获取软件与配置,并遵守所在地法律法规和相关服务条款。