证书文件已经换新,浏览器仍报错,通常说明“你更新的地方”与“用户真正连接的地方”没有对齐。访问可能经过 CDN、负载均衡和多个源站;不同域名、IPv4 与 IPv6 也可能落在不同入口。与其反复上传证书,不如先确认实际访问路径,再分别验证域名、有效期、证书链和服务加载状态。

RootGS 技术编辑 · 发布日期:2026 年 9 月 18 日 · 原创技术指南

一、先记录错误对象,不要只记“证书有问题”

保存浏览器显示的完整错误类型、访问域名、发生时间和客户端系统。证书过期、名称不匹配、签发链不受信任,调查方向不同。检查客户端时间是否正确;只有一台老旧设备失败时,还应考虑其信任库与协议支持。不要通过关闭证书验证把问题“修好”,这会失去确认连接对象身份的能力。

域名也要精确到主机名:example.com 与 www.example.com 是两个检查对象,通配符证书并不自动覆盖所有层级。先核对证书的 Subject Alternative Name 列表,不要只看文件名或后台备注。如果打开的是 IP 地址,证书只包含域名时出现名称错误,并不能证明证书部署失败。

从用户域名、TLS 终止入口到源站逐段核对证书,避免只更新源站文件
图 1:从用户域名、TLS 终止入口到源站逐段核对证书,避免只更新源站文件。RootGS 原创技术示意图,不代表实际监控数据。

二、确认用户究竟连接到哪个入口

画出“浏览器 → CDN 或负载均衡 → 源站”的实际链路,注明每一段是否使用 TLS。公网用户首先看到的通常是最外层入口提供的证书;源站证书更新不会自动替换 CDN 边缘证书。CDN 到源站的校验又是另一段连接,需要分别验证,不能用其中一段正常推断另一段也正常。

若域名有多条 A 或 AAAA 记录,逐个检查仍在服务的地址。部分节点使用旧证书时,故障会表现为时好时坏,或只影响某些网络。记录每次测试的目标地址、证书序列号和有效期,才能确认是否存在部署不一致。排查源站时使用授权的管理路径,不需要为了测试关闭已有访问控制。

三、带着正确的域名验证握手

下面是具有相关选项的 OpenSSL 客户端示例。example.com 和 203.0.113.10 都是占位内容,必须替换为自己管理的域名与入口地址。SNI 用来让服务器选择对应站点,名称验证用来检查返回的证书是否适用于该域名,两者用途不同。

openssl s_client -connect 203.0.113.10:443   -servername example.com   -verify_hostname example.com   -verify_return_error -showcerts < /dev/null

检查验证结果与返回链,同时留意工具使用的本地 CA 信任库。验证失败可能来自服务端,也可能来自测试环境缺少合适的受信任根,不能只截取一个错误编号就定责。showcerts 展示的是服务器发送的证书列表,不等于这条链已经验证通过。不同客户端补齐中间证书的行为也可能不同,因此“我的浏览器能打开”不能替代完整检查。

需要直接连接某个地址又保留 HTTPS 域名时,可以使用 curl 的 --resolve。它同时保留 URL 中的域名用于请求与 TLS 校验,比把 URL 改成 IP、再手工添加 Host 请求头更适合这个场景。示例仅访问无副作用的页面;不要为检查连通性反复提交订单接口。

curl --resolve example.com:443:203.0.113.10   --connect-timeout 5 --max-time 15   -I https://example.com/

不要添加 -k 跳过验证。若站点不支持 HEAD,返回 405 只说明该方法不被接受;应换用经过确认的只读 GET 路径。此命令也不能证明所有地区、所有边缘节点都已经更新。

区分证书过期、域名不匹配与信任链失败,各自检查对应证据
图 2:区分证书过期、域名不匹配与信任链失败,各自检查对应证据。RootGS 原创技术示意图,不代表实际监控数据。

四、检查证书链与服务加载,不只检查文件时间

Nginx 使用合并证书文件时,通常应先放站点证书,再放需要的中间证书,具体内容遵循签发机构和服务文档。只部署站点证书,某些客户端可能无法构建到受信任根的路径。不要把私钥混入对外证书链,也不要将私钥内容贴到工单、日志或在线诊断工具中。

更新文件不代表正在运行的服务已加载新内容。确认生效配置引用的路径,排除同名旧文件和其他虚拟主机配置;按维护流程执行语法检查后再平滑加载。多节点环境要逐台核对,避免只更新了管理节点。若检查失败,应保留正在工作的配置,修正后再加载,不要带着失败结果继续重启。

# 仅在实际运行 Nginx 的主机上,使用具备权限的账号检查
nginx -t

五、把证书问题与页面资源问题分开处理

证书校验通过后,页面仍可能引用 HTTP 图片、脚本或接口,造成混合内容提示。此时应在浏览器开发者工具查看具体资源地址,修正应用配置或模板引用,而不是继续更换证书。重定向循环、代理协议识别错误也属于另一类问题,需要检查入口与应用之间传递的协议状态。

可以把现象分成三列记录:TLS 握手是否成功、HTTP 是否返回预期状态、页面资源是否完整加载。这样团队不会用“网站可以访问”掩盖某一段仍未恢复,也不会把应用返回 500 错当成证书失效。

证书更新验收矩阵覆盖主机名、地址族、节点与客户端
图 3:证书更新验收矩阵覆盖主机名、地址族、节点与客户端。RootGS 原创技术示意图,不代表实际监控数据。

六、验收应覆盖全部域名与节点

列出正式对外使用的域名、IPv4/IPv6 地址、TLS 终止位置和证书负责人。修复后,从至少两个独立访问位置测试,并逐一核对入口节点返回的证书。不要承诺全球瞬时生效;缓存、路由和平台部署过程可能让不同客户端在短时间内观察到不同结果。

记录旧证书与新证书的序列号、有效期、部署时间、检查结果和回退路径。日常监控应面向真实公网入口的证书剩余有效期,而不只是磁盘上的文件。对需要单独续签的源站连接,也建立独立检查。这样下一次更新时,验收清单可以直接复用。

参考资料

此文章对您是否有帮助? 1 用户发现这个很有用 (1 投票)