
你打开一个每天都访问的网站,Chrome 却突然弹出一整页白底红色三角警告:“您的连接不是私密连接”(Your connection is not private),下面还跟着一串神秘代码,比如 NET::ERR_CERT_DATE_INVALID。很多人第一反应是中了病毒,或者以为网站被入侵了。实际上,这个画面只是浏览器在检测到网站 SSL 证书异常后触发的正常防护机制。本文将带你逐一理解这个错误的真正含义、最常见的错误代码、访客端与网站主端各自的原因,并给出可以照着操作的具体解决步骤。与我们另一篇侧重服务器端排查的SSL 安装后故障排除不同,本文专注于浏览器错误页面本身。
这个错误到底是什么意思
在通过 HTTPS 加载任何页面之前,浏览器会先执行 TLS 握手。服务器必须出示 SSL/TLS 证书,浏览器随后验证三件事:(1)证书是否仍在有效期内;(2)证书上的域名是否与正在访问的域名一致;(3)证书是否由浏览器信任的证书颁发机构(CA)签发。只要其中任何一项验证失败,浏览器就会拒绝建立加密连接,并用整页警告替代网页内容。
必须理解的关键点是:这个错误不代表你的电脑感染了病毒,也不一定代表网站被黑。它只说明浏览器无法确认这次连接是安全的,根本原因可能在网站、在网络链路,也可能在访客自己的设备上。各浏览器的措辞略有不同:Chrome 和 Edge 显示“您的连接不是私密连接”,Firefox 显示“警告:面临潜在的安全风险”,Safari 则显示“此连接非私人连接”,但背后的机制完全相同。
一句话总结:这个画面是浏览器的安全检查站,不是病毒。如果只有某一个网站出现警告,问题通常出在那个网站;如果你访问的每个网站都出现警告,问题几乎可以断定在你自己的设备或网络上。
常见错误代码及其含义
警告文字下方,浏览器会显示一个错误代码,这是最有价值的诊断线索。先对照下表找到你的代码。
| 错误代码 | 浏览器 | 含义 | 由谁修复 |
|---|---|---|---|
NET::ERR_CERT_DATE_INVALID | Chrome/Edge | 证书过期,或访客的时钟不正确 | 双方都有可能 |
NET::ERR_CERT_COMMON_NAME_INVALID | Chrome/Edge | 证书上的域名与 URL 不匹配 | 网站主 |
NET::ERR_CERT_AUTHORITY_INVALID | Chrome/Edge | 签发者不受信任,如自签名或证书链断裂 | 网站主 / 网络 |
NET::ERR_CERT_REVOKED | Chrome/Edge | 证书已被 CA 吊销 | 网站主 |
ERR_SSL_PROTOCOL_ERROR | Chrome/Edge | TLS 协商失败,如协议版本过旧 | 网站主 |
SEC_ERROR_EXPIRED_CERTIFICATE | Firefox | 证书过期(等同于 DATE_INVALID) | 双方都有可能 |
SEC_ERROR_UNKNOWN_ISSUER | Firefox | 签发者未知,通常是中间证书缺失 | 网站主 |
SSL_ERROR_BAD_CERT_DOMAIN | Firefox | 域名与证书不匹配 | 网站主 |
注意,“日期无效”这一组是唯一可能完全由访客端引起的错误。关于域名和签发者的代码,几乎都需要在网站端修复。
访客端原因及逐步解决方法
如果你是访客而不是网站主,请按以下顺序排查。清单按出现频率从高到低排列。
1. 设备的日期和时间不正确
NET::ERR_CERT_DATE_INVALID 的头号原因是系统时钟漂移,因为浏览器会用本机时间与证书有效期做对比。如果电脑的年份设错了,一张完全有效的证书也会立刻被判定为过期。Windows 上进入设置 > 时间和语言,开启自动同步时间;macOS 上打开系统偏好 > 通用 > 日期与时间,开启自动同步。手机同样应开启由网络提供的时间。CMOS 电池老化的电脑,或长期断电的设备,时钟特别容易漂移。
2. 带强制门户的公共 Wi-Fi
酒店、机场和咖啡店的 Wi-Fi 通常有一个登录页(强制门户 captive portal),在你接受条款之前会拦截所有流量。未登录期间,门户会用自己的证书应答 HTTPS 请求,替代目标网站的真实证书,从而立刻触发警告。解决办法是先打开一个纯 HTTP 页面,例如 http://neverssl.com,强制登录页弹出,完成登录后再回到原来的网站。
3. 杀毒软件的 HTTPS 扫描
部分杀毒软件提供 HTTPS 扫描或 SSL 检查功能,其原理是把自己插入为中间人:用自己的证书解密你的流量后再重新加密。如果该软件的根证书没有正确安装到浏览器的信任库,所有网站都会开始报 NET::ERR_CERT_AUTHORITY_INVALID。可以先临时关闭 HTTPS 扫描功能再测试;如果警告消失,请把杀毒软件升级到最新版,或按厂商文档重新安装其证书。
4. 过期的缓存和 SSL 状态
浏览器有时会记住之前出问题的证书,即使网站已经修复也继续显示警告。请清除浏览器缓存(Ctrl+Shift+Delete,选择缓存的图片和文件)。Windows 上还可以在 Internet 选项 > 内容 > 清除 SSL 状态中清除系统级 SSL 状态,然后重启浏览器。更快的诊断技巧是用无痕/隐私窗口打开同一网站:如果无痕窗口能正常访问,说明问题出在缓存或某个扩展上。
5. 浏览器扩展与企业网络
代理、VPN 和某些广告拦截类扩展可能干扰 HTTPS 连接,可逐个停用来找出元凶。公司电脑上,IT 部门常会部署带 SSL 检查的代理或防火墙,某些网站出现警告属于预期行为,这种情况只能联系系统管理员处理,用户端无法自行解决。
注意:高级 > 继续访问按钮只适用于你完全信任目标网站的场景,例如自己的测试服务器。在银行、电商或任何登录页面上绝不要跳过警告。如果真的存在中间人,你输入的一切内容都会被完整读取。
网站主端原因:最常见的 5 种情况
如果多位访客在同一时间、从不同设备和不同网络报告这个错误,就应当假定问题出在你的服务器上。按出现频率排序的常见情况如下。
1. 证书过期
迄今最常见的原因,尤其是手动安装证书后无人记得续期日期的网站。Let's Encrypt 证书有效期只有 90 天,付费证书一般为一年。点击地址栏旁的锁形/调节图标查看证书详情即可看到到期日,或使用下文的 openssl 命令。一劳永逸的办法是开启自动续期,详见我们的 SSL 证书续期指南。
2. 域名与证书不匹配
证书会在 Common Name 和主题备用名称(SAN)字段中明确列出所保护的域名。如果证书签发给 example.com,而访客输入的是不在 SAN 列表中的 www.example.com,就会立即出现 NET::ERR_CERT_COMMON_NAME_INVALID。解决办法是重新签发同时覆盖 www 与非 www 的证书,或为所有子域名使用通配符(Wildcard)证书。把新子域名指向服务器却忘记扩展证书覆盖范围时,也会发生同样的问题。
3. 中间证书链不完整
证书以链条方式工作:从网站证书经过一个或多个中间 CA 证书,一直到浏览器已经信任的根 CA。如果服务器只安装了网站证书而没有附带 CA bundle(中间证书),部分浏览器无法拼出完整链条,Firefox 会报 SEC_ERROR_UNKNOWN_ISSUER。此情况的典型症状是“有的设备能访问、有的不能”,因为桌面浏览器往往已缓存中间证书而手机没有。深入了解请阅读SSL 证书链详解。
4. 自签名证书
自己签发的证书确实能加密流量,但无法证明身份,因此浏览器总是用 NET::ERR_CERT_AUTHORITY_INVALID 标记它。自签名证书只应出现在内部测试环境。任何向公众开放的网站都需要来自受信任 CA 的证书——免费的 Let's Encrypt 或 RapidSSL 之类的商业证书均可。
5. 混合内容及其他配置问题
即使证书完全有效,如果 HTTPS 页面通过纯 http:// 加载图片、脚本或 CSS,锁形图标会被降级为“不安全”,或者这些资源直接被拦截。虽然不是整页警告,但同样损害信任度,排查方法见混合内容修复指南。同样地,只启用过时的 TLS 版本(1.0/1.1)会让现代浏览器以 ERR_SSL_PROTOCOL_ERROR 拒绝连接。
网站主在 DirectAdmin 上的修复方法
对于配备 DirectAdmin 的虚拟主机账号,签发新证书或更换过期证书用不了五分钟。
- 登录 DirectAdmin,选择目标域名,打开 SSL Certificates 菜单。
- 选择 Free & automatic certificate from Let's Encrypt 标签页。
- 勾选所有需要保护的条目——尤其是
example.com和www.example.com两个都要勾(漏掉其中一个正是 COMMON_NAME_INVALID 最常见的成因)。 - 点击 Save。DirectAdmin 会自动完成域名验证,并一步到位安装证书和完整证书链。
- 回到 SSL Certificates 页面确认新证书已生效。此后系统会在到期前自动续期,无需自己配置计划任务。
别忘了在同一页面开启 Force SSL with https redirect,让所有访问都强制走 HTTPS。完整图文步骤见在 DirectAdmin 上安装 Let's Encrypt。如果签发证书后警告仍未消失,请清除浏览器缓存或换一个网络重试——你看到的可能只是缓存的失败结果。
小贴士:刚搬迁到新主机就开始出现 SSL 错误的网站,通常是新服务器上还没有签发证书。DNS 指向新服务器后,请立即在目标服务器上签发新的 Let's Encrypt 证书——Let's Encrypt 证书并不总能随网站文件自动迁移。
用浏览器检查证书
动手修改之前,先看看证书的实际数据,不需要任何特殊工具。
- Chrome/Edge:点击地址栏旁的调节图标 > 连接是安全的 > 证书有效,即可看到签发者、到期日和完整的 SAN 域名列表。
- Firefox:点击锁形图标 > 连接安全 > 更多信息 > 查看证书,一个标签页内展示整条证书链。
- 直接在错误页上:Chrome 中点击错误代码文字或高级按钮,会显示具体失败原因的说明,例如证书在哪一天过期。
记下三个字段:颁发给(哪个域名)、颁发者(哪家 CA)、有效期从/至(有效时间窗口)。这三个值几乎能回答所有诊断问题。
用 openssl 检查证书
对技术用户和服务器管理员来说,openssl 提供的信息更详细,而且可以在任何机器上运行。
# 显示服务器出示的全部证书(检查证书链)
openssl s_client -connect example.com:443 -servername example.com
# 只显示有效期
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -dates
# 列出 SAN 字段中的所有域名
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -text | grep -A1 "Subject Alternative Name"
在第一条命令的输出中,直接看最后的 Verify return code 一行:0 (ok) 表示证书链完整;21 (unable to verify the first certificate) 表示缺少中间证书;10 (certificate has expired) 则是证书已过期。在托管多个网站的服务器(SNI)上,-servername 参数必不可少——不加的话,你拿到的可能是同一台机器上另一个网站的证书。
手机上的表现有什么不同
机制完全相同,但有三点差异值得了解。第一,非常老旧的手机可能缺少较新的根证书,使用新成立 CA 的网站会在手机上报错而在电脑上正常,稳妥的解决办法是升级操作系统。第二,一些应用内置的浏览器处理证书的方式与系统浏览器不同——把同一链接直接在 Chrome 或 Safari 中打开即可定位问题。第三,手机若一直连着已过期会话的强制门户 Wi-Fi,会在所有网站上看到警告;切换到 4G/5G 重试,如果移动数据下一切正常,就是那个 Wi-Fi 的问题。
彻底预防:网站主检查清单
- 始终开启证书自动续期——不要只靠日历提醒。
- 每次签发都同时覆盖 www 与非 www,上线新子域名时立即扩展证书覆盖范围。
- 每次安装或续期后,用 openssl 或外部 SSL 检查工具验证,而不是只用自己的浏览器(可能有缓存)。
- 确认 Verify return code 为 0 (ok),证明证书链完整。
- 设置至少提前 14 天的到期提醒,为处理问题留出时间。
- 如果使用 Cloudflare 等 CDN 或代理,要同时验证两段连接的证书:浏览器到 CDN、CDN 到源服务器。
常见问题 (FAQ)
提示您的连接不是私密连接危险吗?
警告本身不是病毒也不是攻击,而是浏览器内置的保护机制,表示无法验证该网站的 SSL 证书。真正的风险出现在你跳过警告后,仍在无法验证的连接中输入密码或银行卡信息。因此除非完全信任该网站,否则不要点击继续访问。
为什么我访问每个网站都出现这个错误?
如果每个网站都触发警告,问题几乎可以肯定出在你的设备或网络上,而不是网站本身。最常见的原因包括系统日期时间错误、尚未登录的公共 Wi-Fi 强制门户、开启了 HTTPS 扫描功能的杀毒软件,或本机根证书库损坏。请先开启自动时间同步并换一个网络测试。
NET::ERR_CERT_DATE_INVALID 是什么意思?
它表示证书的有效期与当前时间不匹配。要么是服务器端的证书确实已过期,要么是访客电脑的时钟设错了年月。如果你的时钟正确而错误仍然出现,说明该网站忘记续期证书了。
点击仍要继续安全吗?
只有当你非常清楚目标网站是什么,且不会输入任何敏感信息时才可以,例如在 localhost 或家庭设备上测试自己的网站。在银行、购物或任何需要登录的页面上绝对不要跳过警告,因为连接可能正被拦截或伪造,你输入的一切都可能被第三方读取。
我的网站向访客显示此错误,该如何修复?
重点检查三件事:证书是否已过期、证书上的域名是否与访客实际输入的 URL 完全匹配(包括 www 与非 www)、中间证书链是否完整安装。使用带 DirectAdmin 的虚拟主机时,可在 SSL Certificates 菜单中几分钟内签发新的 Let's Encrypt 证书并开启自动续期。
免费的 Let's Encrypt 和付费 SSL 证书该选哪个?
两者的加密强度完全相同。Let's Encrypt 适合大多数网站,每 90 天自动续期。付费证书如 RapidSSL DV(约 1,000 泰铢/年)有效期更长,提供保险赔付(warranty)和安装支持,更适合追求额外信任保障的企业网站。
想要有人替你装好 SSL,告别红色警告页?
AsiaGB 提供各级别 SSL 证书,RapidSSL DV 每年仅 1,000 泰铢起,团队会在 DirectAdmin 上为你正确安装——含完整证书链,从第一天起就不出错。
查看 SSL 证书套餐