SSL 证书错误:含义与解决方法
最后核实:2026年10月20日
浏览器提示“您的连接不是私密连接”时,说明服务器上的证书没有通过某项检查。错误代码会告诉你是哪一项。只要知道从哪里排查,大多数问题几分钟就能解决。
要点
错误代码
| 错误(Chrome) | 含义 | 解决方法 |
|---|---|---|
NET::ERR_CERT_DATE_INVALID | 证书已过期或尚未生效 | 续期证书并重新加载 Web 服务器;如果证书看起来有效,请检查设备时间。 |
NET::ERR_CERT_COMMON_NAME_INVALID | 证书未覆盖所访问的域名 | 申请包含所有使用中域名的证书:example.com、www.example.com 及子域名(或使用通配符证书)。 |
NET::ERR_CERT_AUTHORITY_INVALID | 颁发机构不受信任:自签名证书、内部 CA 或缺少中间证书 | 使用公开受信任的 CA,并安装完整证书链。 |
ERR_SSL_VERSION_OR_CIPHER_MISMATCH | 服务器只支持过时的协议或加密套件 | 启用 TLS 1.2 和 TLS 1.3。 |
NET::ERR_CERT_REVOKED | 证书已被 CA 吊销 | 申请新证书;如果私钥泄露,还需生成新私钥。 |
ERR_TOO_MANY_REDIRECTS | HTTP 与 HTTPS 之间的重定向循环,常见于 CDN 使用“flexible”模式时 | 在 CDN 中使用 full/strict 模式,服务器上只保留一次重定向。 |
证书过期
Firefox 中同样的问题显示为 SEC_ERROR_EXPIRED_CERTIFICATE。Let's Encrypt 证书有效期为 90 天,由 certbot 等 ACME 客户端或主机控制面板自动续期。续期常常悄无声息地失败:80 端口被关闭、DNS 已指向其他服务器,或拿到新证书后没有重新加载 Web 服务器。
CA/Browser 论坛的规则正在缩短证书有效期:2026 年 3 月 15 日前最长 398 天,此后为 200 天,自 2027 年 3 月 15 日起为 100 天,自 2029 年 3 月 15 日起为 47 天。手动续期已不现实,请使用 ACME 实现自动化。
缺少中间证书
服务器必须同时发送自己的证书和中间证书。桌面浏览器常会从缓存中补全缺失的中间证书,所以网站“在我电脑上没问题”,却在手机、App、curl 或 API 客户端上报错。请安装完整证书链:Let's Encrypt 使用 fullchain.pem,主机面板中填写“CA bundle”。SSL 检测会显示证书链是否完整。
域名不匹配
证书覆盖的域名列在 SAN(主题备用名称)字段中;Firefox 将此错误显示为 SSL_ERROR_BAD_CERT_DOMAIN。*.example.com 这样的通配符证书只覆盖一级子域名(如 shop.example.com),不覆盖 example.com 本身,也不覆盖 a.b.example.com。如果网站也能通过 www 访问,证书必须同时包含这两个名称。
其他原因
- 混合内容:HTTPS 页面通过 http:// 加载脚本、图片或样式,导致锁形图标消失或内容被拦截。请把这些地址改为 https://。
- HSTS:网站一旦发送过 HSTS,浏览器在 max-age 到期前不允许用户忽略证书错误。解决办法是修好证书,而不是关闭 HTTPS。
- CAA:如果域名设置了 CAA 记录,只有其中列出的 CA 可以签发证书;若未列出你使用的 CA,续期将失败。
- 设备时间不正确会让证书看起来已过期或尚未生效。
- 检查 HTTPS 流量的杀毒软件和企业代理会出示它们自己的证书,此时错误只会出现在该网络或设备上。
检测并接收提醒
来源
- CA/Browser Forum – Baseline Requirements
- Let's Encrypt – 常见问题
- RFC 8446 – TLS 1.3
- RFC 6797 – HSTS
- MDN – 混合内容
本指南汇总公开信息,不构成法律建议。