CSR.pluscsr.plus
← 返回文章
故障排除2026-08-15•4 分钟阅读

证书链不完整:缺少中级证书的修复方法

· CSR.plus 团队

证书链不完整:缺少中级证书的修复方法
  • •链错误几乎总是意味着服务器只发送叶子证书,而没有发送浏览器验证所需的中级证书。
  • •修复方法是一个拼接文件:叶子 + 中级,顺序正确。
  • •用与访客相同的 openssl 命令验证修复结果。
链错误
症状
只在部分客户端出现
缺少文件
根本原因
未发送中级证书
约 5 分钟
修复时间
获取链之后
openssl
验证方式
s_client + 证书链

链为什么会断裂

浏览器信任证书是因为信任其根证书。您的叶子证书由不在浏览器信任库中的中级证书签名,因此服务器必须在握手中发送它。如果服务器配置只指向叶子证书,或拼接文件顺序错误,不缓存中级证书的客户端就会报"链不完整"、"unable to get local issuer certificate"或 NET::ERR_CERT_AUTHORITY_INVALID。

在 Nginx 和 Apache 上如何修复

从您的 CA(或证书 Authority Information Access 扩展中的中级端点)下载完整链包。拼接:cat yourdomain.com.crt intermediate.crt root.crt > fullchain.crt——叶子在前,中级按顺序,根在最后。Nginx 将 ssl_certificate 指向 fullchain 文件;Apache 设置 SSLCertificateChainFile(或把链包含进 SSLCertificateFile)。然后重载。

验证修复结果

运行 openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -showcerts 2>&1 | grep -A1 "Certificate chain"。您应该看到叶子证书后跟中级证书。openssl verify -CAfile root.pem fullchain.crt 应输出 "fullchain.crt: OK"。再用干净的浏览器配置文件和外部链检查工具复测。

FAQ

为什么有的浏览器能访问、有的不能?

近期从 CT 日志或缓存获取过中级证书的客户端可以不依赖它完成验证;其他客户端则不行。修复方法相同:发送完整链。

CDN 会掩盖这个问题吗?

不会——CDN 用自己的证书终止 TLS。如果您只上传叶子证书到 CDN,它会把同样的断链转发给访客。

UptimeRobot

免费监控你的 SSL 与在线状态

UptimeRobot 全天候监视你的证书与端点——免费方案含 50 个监控。

免费试用 UptimeRobot

联盟链接——你无需多付任何费用,我们可能获得佣金。

免费 SSL/TLS 工具

数秒内验证并检查你的证书。

相关文章