网站SSL证书错误怎么办?常见HTTPS证书问题与排查方法

网站 SSL 证书错误不一定只是证书过期,域名不匹配、证书链异常、TLS 配置错误以及 CDN 同步问题都可能导致 HTTPS 访问异常。本文整理常见 SSL 报错及对应解决方法,帮助站长快速判断问题原因并完成排查修复。

Chahu 团队2026-09-045 分钟阅读

网站突然出现 SSL 证书错误,很多人的第一反应都是“证书是不是过期了”。但实际排查下来,证书过期只是其中一种情况,域名没有覆盖、证书链不完整、CDN 还在返回旧证书,都可能让 HTTPS 出现异常。下面就结合几种常见报错,具体说说网站 SSL 证书错误应该怎么查,以及不同问题分别该怎么处理。

ScreenShot_2026-09-04_140828_330.png

一、先看浏览器报的是什么SSL错误

不同 SSL 错误背后的原因并不一样,Chrome、Edge 等浏览器通常会在安全提示页面下面给出具体错误代码。相比单纯看到“连接不是私密连接”,这些代码对定位问题更有价值。

常见错误提示

可能原因

优先检查

NET::ERR_CERT_DATE_INVALID

证书过期、尚未生效、本地系统时间错误

证书有效期、电脑时间

NET::ERR_CERT_COMMON_NAME_INVALID

当前访问域名没有被证书覆盖

CN、SAN 域名

NET::ERR_CERT_AUTHORITY_INVALID

证书链不完整、自签名证书、CA不受信任

CA、Intermediate Certificate

ERR_SSL_PROTOCOL_ERROR

TLS、HTTPS或服务器配置异常

443端口、TLS配置

您的连接不是私密连接

浏览器综合安全警告

查看下面的具体错误代码

SSL证书已过期

当前返回的证书超过有效期

在线证书、服务器或CDN配置

如果能先确定具体错误类型,后面的排查范围会小很多:比如ERR_CERT_DATE_INVALID,一般先查证书时间;而ERR_CERT_COMMON_NAME_INVALID,重点就应该放在域名匹配,而不是反复重装同一张证书。

二、先检查网站当前实际返回的SSL证书

遇到 HTTPS 报错时,我通常不建议第一步就进入服务器后台重新申请或者重新安装证书。应该先确认一件更基础的事情:用户现在访问网站时,服务器到底返回了哪一张证书?这一步看起来简单,却是很多 SSL 故障最容易忽略的地方。

你已经在服务器后台上传了一张新的证书,后台显示的有效期也完全正常,但网站前面如果还有 CDN、负载均衡或者反向代理,用户实际收到的并不一定是这张证书。

常见情况包括:

  • SSL证书刚刚续期;

  • 网站更换过CDN;

  • 修改过DNS解析;

  • 网站存在多台源站;

  • CDN不同节点证书没有同步;

  • Nginx配置已经修改,但服务没有重新加载;

  • 一个IP上部署了多个HTTPS站点。

用Chahu先确认线上证书状态

这种情况下,可以先通过 Chahu 的 SSL 证书检测功能检查网站当前对外返回的 HTTPS 证书。

输入需要检查的域名后,重点关注几项信息:

  • SSL证书是否仍在有效期内;

  • 当前访问域名是否包含在证书中;

  • 证书的签发机构;

  • 证书链是否存在异常;

  • 网站当前实际返回的是新证书还是旧证书;

  • HTTPS和TLS配置是否存在明显问题。

这比单纯进入服务器后台看“证书已经上传成功”更有参考价值,因为在线检测看到的是公网用户真正连接网站时获得的结果。

可以根据检测结果快速判断下一步:

检测情况

后续处理方向

SSL证书已经过期

重新续签并部署证书

当前域名不在证书中

重新签发包含对应域名的证书

证书链不完整

检查中间证书配置

返回的仍然是旧证书

检查服务器、CDN和节点同步

证书本身正常

继续检查TLS、443端口、CDN或本地环境

先把“证书本身的问题”和“服务器配置的问题”分开,后面的排查会轻松很多。

三、SSL证书已经过期怎么办?

证书过期是最常见,也是比较容易判断的一类 SSL 错误。SSL证书都有明确的生效时间和失效时间。如果当前时间已经超过Not After,浏览器就会认为这张证书已经失效,并向用户显示安全警告。

常见报错包括:

NET::ERR_CERT_DATE_INVALID

或者直接提示:

证书已过期
Certificate Expired

解决方式并不复杂,重新续签或者申请新证书,然后部署到服务器即可。

真正容易出问题的是:

证书明明已经续签了,网站却仍然显示旧证书。

这种情况就不能只检查 CA 平台或者服务器面板里的证书有效期,还要确认线上实际返回的证书是否已经更新。

如果网站使用 Nginx,可以检查配置中加载的证书文件路径是否正确,例如:

ssl_certificate
ssl_certificate_key

替换证书之后还要重新加载 Nginx 配置,否则运行中的服务可能仍然使用之前加载的内容。

如果网站前面还有 CDN,也要继续检查 CDN 节点上的证书是否同步完成。

四、证书和网站域名不匹配怎么办?

另一种非常常见的情况,是证书本身没有过期,但访问网站时仍然出现:

NET::ERR_CERT_COMMON_NAME_INVALID

这种错误通常意味着:

浏览器当前访问的域名,并没有包含在这张SSL证书的有效域名范围内。

例如证书中包含:

example.com
www.example.com

此时访问:

https://example.com
https://www.example.com

通常没有问题。

但如果访问:

https://api.example.com

而api.example.com并没有出现在证书的 SAN(Subject Alternative Name)中,浏览器就可能直接提示域名不匹配。

这种问题在新增二级域名以后尤其常见。

通配符证书也要注意覆盖范围

例如:

*.example.com

通常可以覆盖:

www.example.com
api.example.com
shop.example.com

但不要简单理解成一张通配符证书可以覆盖任意层级的子域名。

如果实际业务使用的是:

api.shop.example.com

就应该重新确认当前证书是否真的覆盖这个域名。

因此出现域名不匹配时,首先检查证书中的 SAN,而不是单纯看证书状态是不是“有效”。

五、证书没过期,浏览器为什么还是提示不安全?

“证书明明还有几个月才到期,为什么浏览器还是报错?”这种情况在实际运维中并不少见。证书有效期只是 SSL 检查中的其中一项,并不能代表整个 HTTPS 配置一定正常。

1. 证书链不完整

浏览器验证一张网站证书时,并不是只检查网站证书本身。

一个完整的信任关系通常类似:

网站SSL证书
    ↓
Intermediate CA
    ↓
Root CA

服务器一般不需要直接发送根证书,但应该正确提供需要的中间证书。

如果 Intermediate Certificate 缺失,就可能出现一个比较奇怪的现象:

自己电脑访问正常,部分手机或者其他用户却提示证书不受信任。

这是因为不同操作系统、浏览器和设备本地保存的中间证书缓存可能不同。

解决这种问题时,要检查服务器是否部署了完整证书链,而不是只上传单独的一张网站证书。

2. 使用了自签名证书

自签名证书比较适合内网、开发或者测试环境,但公网浏览器默认不会信任这种证书。

因此很容易出现:

NET::ERR_CERT_AUTHORITY_INVALID

如果是正式对公网提供服务的网站,通常应该使用受主流浏览器信任的 CA 签发证书。

3. 本地电脑时间错误

这个问题比较基础,却经常被忽略。

假设一张证书的有效期是:

2026-08-01
至
2026-11-01

但电脑本地时间错误地显示为:

2027-01-10

那么从浏览器的角度来看,这张证书已经过期了。

因此,如果只有某一台电脑出现 SSL 错误,而其他设备访问都正常,可以检查一下:

  • 系统日期;

  • 当前时区;

  • 自动时间同步;

  • NTP服务。

如果错误只发生在个别客户端,本地环境往往比服务器本身更值得先查。

六、SSL证书已经更新,为什么网站还是显示旧证书?

刚刚续签 SSL 证书之后,最让人头疼的一种情况就是:后台已经换成新证书,浏览器查看却还是旧的。这种问题通常有几个方向。

1. Nginx或者Apache没有重新加载

服务器上的证书文件虽然已经被替换,但 Web Server 仍然可能运行着旧配置。

例如更换:

fullchain.pem
privkey.pem

之后,没有执行对应的 Reload 操作。

对于 Nginx,可以先检查配置是否正常,然后重新加载:

nginx -t
nginx -s reload

如果使用的是面板或者托管环境,也要确认系统有没有真正重新加载 Web 服务。

2. 更新错了虚拟主机

一台服务器上往往不止一个网站。

例如:

example.com
www.example.com
api.example.com

都可能拥有独立的server配置。

如果证书上传到了另一个虚拟主机,即使文件本身完全正常,当前域名仍然会继续返回旧证书。

这时应该结合:

  • Server Name;

  • SNI;

  • 443监听配置;

  • 证书文件路径;

一起检查。

3. CDN仍然在返回旧证书

如果网站使用 CDN,这一点尤其重要。

实际 HTTPS 链路通常不是:

用户 → 源站

而是:

用户
 ↓
CDN边缘节点
 ↓
源站

浏览器首先建立 HTTPS 连接的对象是 CDN 边缘节点,因此用户看到的也是 CDN 返回的 SSL 证书。即使源站已经更新,只要 CDN 端仍然加载旧证书,前端访问结果就不会发生变化。

所以更换证书以后,应该分别确认:源站证书是否更新,以及 CDN 边缘证书是否更新。

4. 部分节点仍然使用旧证书

如果网站使用全球 CDN、多节点或者负载均衡,还有一种情况是不同节点的配置状态不一致。

例如:

上海节点 → 新证书
香港节点 → 新证书
新加坡节点 → 旧证书

这时就可能出现:自己访问完全正常,但国外客户一直反馈证书过期。这种问题单靠本地浏览器刷新很难发现,需要从公网或者不同网络环境检查实际返回的证书。

七、HTTP能打开,但HTTPS打不开怎么办?

如果:

http://example.com

能够正常访问,

但:

https://example.com

完全打不开,

问题就不一定只是 SSL 证书本身。

一个完整 HTTPS 请求大致要经过:

域名解析
   ↓
服务器或CDN
   ↓
TCP 443连接
   ↓
TLS握手
   ↓
SSL证书验证
   ↓
HTTP请求
   ↓
网站应用

只要其中任何一个环节出现问题,HTTPS 都可能连接失败。

先检查443端口

HTTP一般使用80端口,而HTTPS主要使用443端口。

如果服务器安全组、防火墙或者Web Server没有开放443,即使SSL证书本身完全正确,HTTPS照样无法访问。

可以检查:

  • 云服务器安全组;

  • Linux防火墙;

  • Nginx/Apache监听配置;

  • CDN端口设置。

检查Web Server是否启用了HTTPS

Nginx配置中通常会看到类似:

listen 443 ssl;

如果没有正确监听443,或者SSL相关配置没有加载,也会导致HTTPS连接失败。

检查证书文件路径

如果证书路径填写错误、文件被删除、权限不足,Web Server 在启动或重新加载时也可能失败。

因此修改 SSL 配置以后,最好先测试配置是否正确,再执行 Reload。

检查TLS配置

如果服务器只支持已经淘汰的 TLS 协议,或者加密套件配置存在问题,新版本浏览器也可能直接拒绝建立连接。

正式网站通常应该使用当前主流、安全的 TLS 配置,避免继续依赖老旧协议。

八、用了CDN以后出现SSL错误,重点检查这4项

部署 CDN 以后,SSL 排查会比单机服务器多一层。

因为这时至少存在两段连接:

访客 ↔ CDN ↔ 源站

如果两边都使用 HTTPS,那么实际上存在:

访客
 ↓ HTTPS
CDN
 ↓ HTTPS
源站

因此,前端HTTPS正常,不代表CDN回源HTTPS也一定正常。

1. CDN是否绑定了正确证书

很多人在源站更新完证书以后,以为整个网站就已经完成更新。

但对于 CDN 网站来说,边缘 HTTPS 往往拥有单独的证书配置。

应该确认:

  • CDN绑定的证书是否正确;

  • 证书对应域名是否一致;

  • 证书是否仍在有效期内;

  • 新增子域名是否已经加入证书。

2. CDN节点是否已经同步

刚更换证书或者新增域名后,不同边缘节点可能存在短暂的配置状态差异。

如果部分地区正常、部分地区报证书错误,就应该重点检查节点同步情况。

3. CDN回源HTTPS是否正常

有时候用户到 CDN 这一段完全正常,但 CDN 到源站建立 TLS 连接时失败。

例如:

用户 → HTTPS → CDN
              ↓
            HTTPS
              ↓
             源站

如果源站证书过期、域名验证失败或者 TLS 配置异常,CDN可能无法正常回源。

最终网站表现出来的未必是浏览器证书警告,也可能是:

502
525
526
SSL Handshake Failed

不同服务商的错误码会有所区别,但排查逻辑基本一致。

4. 检查SNI配置

同一个 IP 上部署多个 HTTPS 网站时,服务器通常依赖 SNI 判断应该返回哪一张证书。

如果 SNI 配置错误,可能出现:

访问 example.com

服务器却返回:

otherdomain.com 的证书

浏览器自然会认为证书与访问域名不匹配。

这种问题经常出现在:

  • 多站点服务器;

  • 反向代理;

  • CDN回源;

  • 负载均衡;

这些场景中。

九、网站SSL证书错误可以按这个顺序排查

如果不确定问题到底出在哪里,可以按照下面的顺序逐层检查:

浏览器出现HTTPS / SSL错误
        ↓
查看具体错误代码
        ↓
使用Chahu检查公网实际返回的SSL证书
        ↓
证书是否过期?
   ├─ 是 → 续签并重新部署证书
   └─ 否
        ↓
当前域名是否被证书覆盖?
   ├─ 否 → 重新签发正确证书
   └─ 是
        ↓
证书链是否完整?
   ├─ 否 → 补充Intermediate CA
   └─ 是
        ↓
检查443端口和TLS配置
        ↓
检查Nginx / Apache配置
        ↓
网站是否使用CDN?
   ├─ 是 → 检查CDN证书、节点同步、SNI和回源HTTPS
   └─ 否 → 继续检查源站HTTPS配置
        ↓
重新测试网站HTTPS状态

这种方式比看到报错以后直接重新申请证书更有效,因为很多 HTTPS 问题实际上和证书签发本身没有关系。尤其是刚完成 CDN 切换、证书续签或者服务器迁移的网站,先确认公网实际返回结果,往往能够省掉大量不必要的排查时间。

结语

SSL证书报错看起来只是浏览器里的一条安全提示,但真正排查起来,问题可能出现在证书、域名、证书链、服务器、TLS、CDN或者客户端任意一个环节。证书过期反而是相对简单的一类情况。实际运维中更容易浪费时间的,往往是证书已经更新但线上仍然返回旧证书、SAN没有覆盖新增域名、证书链缺失,或者源站和 CDN 之间的 HTTPS 配置没有同步。

所以遇到网站SSL证书错误时,不必一开始就重新申请证书。先确认网站当前实际返回的证书,再按照有效期 → 域名匹配 → 证书链 → 443端口 → TLS → Web Server → CDN的顺序逐层排查,通常更容易找到真正的问题所在。

相关问答

1. 个人博客和电商网站选的SSL证书能一样吗?

完全不一样。免费证书基本都是DV级别,只验证你有没有域名的控制权,适合个人博客、测试项目这类对身份验证要求不高的场景。但电商、支付、政务这类涉及资金交易或敏感信息的业务,用户需要确认网站背后是真实可信的组织,这时候就必须用OV或EV级别的付费证书。加密强度上免费和付费确实没区别,但付费证书提供组织身份验证、技术支持、保险赔付这些额外保障。

2. 通配符证书和多域名证书到底该选哪个?

看你的域名结构。通配符证书格式是*.example.com,能覆盖同一主域名下所有一级子域名,比如www.example.com、api.example.com、shop.example.com,新增子域名不用额外操作。多域名证书(SAN证书)是针对不同主域名的,比如同时保护example.com、example.net、example.org这几个完全不同的域名。如果你的子域名层级很深,比如api.shop.example.com,通配符证书是覆盖不了的,需要单独处理。

3. 电脑上访问正常,手机浏览器却提示证书不受信任,怎么回事?

这种情况大概率是证书链的问题。不同操作系统和浏览器内置的根证书库不一样,老版本的Android手机可能没有某些CA的根证书。如果服务器只返回了网站证书、没有把中间证书也带上,电脑端可能因为本地缓存了中间证书而正常访问,但手机端缺少这个中间证书就会报错。解决方案是在服务器上部署完整的证书链,把中间证书和网站证书合并在一起。

4. 本地电脑时间不对,真的会导致浏览网页报 SSL 证书错误吗?

会的,而且非常常见(报错通常为NET::ERR_CERT_DATE_INVALID)。 HTTPS 证书的校验是基于时间戳的(有一个“生效时间”和“到期时间”)。如果你的电脑或手机系统时间偏离严重(比如电脑电池没电导致时间倒退回几年前,或者跑到未来),浏览器用本地时间去对比证书的有效期,就会误判该证书“尚未生效”或“已经过期”。建议开启系统的 NTP 自动同步时间功能。