NET::ERR_CERT_COMMON_NAME_INVALID 怎么解决

该错误表示证书的域名列表(SAN)不包含你访问的域名。排查:对比证书 SAN 与访问域名、检查 www 与非 www 是否都覆盖、DNS 是否指错服务器。附站长修复与用户侧应对。

最佳实践
应用程序模块协作插画

一句话回答:这个错误的意思是"证书上没有你正在访问的这个域名"——证书的 SAN 列表与地址栏域名对不上。站长视角按三处查:证书 SAN 是否包含该域名(含 www/非 www 两种形态)、DNS 是否把域名指到了没有它证书的服务器、重定向是否把用户带去了证书未覆盖的域名。修复就是给证书补上该域名(重签/SAN/泛域名)或修正指向。

先看清证书实际覆盖谁

echo | openssl s_client -connect 域名:443 -servername 域名 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName

把输出里的 SAN 列表与地址栏的域名逐字对比。高频不匹配模式:

访问 证书只有 结果
www.example.com example.com ❌ 报错
example.com www.example.com ❌ 报错
a.b.example.com *.example.com ❌ 泛域名只盖一级
域名 A 服务器上默认站点的证书 B ❌ 串站

站长修复方案

1. 证书缺形态就补上

最常见的坑:证书只签了 example.com,用户输 www.example.com 就报错。重签证书时把两个形态都加进 SAN(Let's Encrypt:certbot -d example.com -d www.example.com),泛域名 *.example.com 不覆盖 example.com 本身,裸域仍要单列 SAN。

2. 检查重定向链路

http→https、非 www→www 的跳转链上,每一跳的目标域名都要在对应证书里。跳转目标的证书没配好,用户在中间那跳就被拦下。

3. DNS/服务器错位

域名指到了别人的服务器(迁移后没改 DNS、共享主机默认站点),返回的自然是别人的证书。dig 域名 确认解析目标。

4. SNI 缺失场景

老客户端不发 SNI 时拿到默认证书——给默认 server 块配兜底证书,或放弃对上古客户端的支持。

证书部署完成后,分别请求裸域、www 和实际使用的子域。若用观测云 HTTPS 拨测持续验证,为各入口建立独立任务并保留证书校验,先确认请求命中预期站点;证书剩余天数则可单独在 SSL 拨测中设置判断条件。

访客侧怎么办(你不是站长)

  • 检查网址拼写(example.com vs examp1e.com)
  • 试 https 与另一种形态(加/去掉 www)
  • 确认系统时间正确
  • 不要绕过警告提交账号、密码或其他敏感信息;让管理员修复域名与证书映射

常见问题(FAQ)

Q:证书里有这个域名,为什么还报?

A:确认你看到的就是服务器实际返回的证书(用上面 openssl 命令,别看本地保存的旧证书);CDN 场景检查边缘证书和回源 Host 配置;多服务器负载均衡场景可能只有一台证书没更新。

Q:和内网的 ERR_CERT_AUTHORITY_INVALID 是同一回事吗?

A:不是。COMMON_NAME_INVALID 是"域名对不上";AUTHORITY_INVALID 是"签发者不被信任"(自签/内部 CA)。内网服务两个错误常一起出现,自签证书 + 域名不匹配的组合很典型。

Q:改完证书多久生效?

A:直连服务器成功重载后,新握手通常使用新证书;CDN/负载均衡终止 TLS 时,边缘证书需单独部署并等待传播。既有连接和会话恢复也可能影响观察,逐入口重新握手验证。


参考资料

本文依据官方资料核对,未进行现场运行测试;代码与配置示例需结合实际版本、权限和环境验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台