SSL 证书安装往往在您自己的浏览器里出现挂锁图标的那一刻就看似完成了。然后,使用旧手机的客户看到了警告,支付服务商拒绝了一个 webhook,或者证书在三个月后悄悄过期。这些问题大多源于少数几种反复出现的错误。本指南说明如何诊断并修复其中每一种,无论您的网站运行在 VPS、控制面板上,还是位于 CDN 之后。

中间证书链不完整

证书颁发机构用中间证书为您的证书签名,而中间证书本身由受信任的根证书签名。服务器必须把您的证书连同中间证书一起发送。如果只发送您的证书,桌面浏览器往往仍能正常工作,因为它们会缓存或自行获取缺失的部分,而移动应用、API 客户端和较旧的设备则会失败。

如何诊断

使用在线 SSL 检测工具,或运行 openssl s_client -connect example.com:443 -showcerts 并数一数返回的证书数量。证书链不完整通常只显示一份证书,或者报告无法验证颁发者。

如何修复

  • 在 Nginx 上,让证书指令指向完整链文件,而不是单独的证书。
  • 在 Apache 上,使用完整链文件,或在较旧版本中设置链文件指令。
  • 在控制面板中,把 CA 证书包粘贴到单独的中间证书字段中。

名称不匹配

名称不匹配错误表示地址栏中的主机名没有列在证书上。常见原因包括:证书是为 example.com 颁发的,却没有包含 www.example.com;证书颁发之后又新增了子域名;或者由于您域名的虚拟主机缺少 SSL 配置,服务器发送了默认证书。

请检查证书上的使用者备用名称(Subject Alternative Names),并与您使用的每个主机名比对。重新颁发包含所有名称的证书,并确保每个 HTTPS 虚拟主机都设置了自己的服务器名称,这样服务器才能通过 SNI 选出正确的证书。

迁移到 HTTPS 之后的混合内容

混合内容指的是 HTTPS 页面通过普通 HTTP 加载图片、脚本或样式表。浏览器会直接拦截不安全的脚本,并可能因图片而显示损坏的挂锁。症状从挂锁消失,到菜单失效、结账页面损坏,不一而足。

  • 打开浏览器开发者控制台;它会列出每个被拦截或不安全的资源。
  • 更新 CMS 中的网站 URL 设置,使新链接以 HTTPS 生成。
  • 在数据库中搜索内容、主题设置和小工具里硬编码的 http:// 链接,并在备份之后谨慎地替换。
  • 检查第三方嵌入内容、字体和跟踪脚本,它们有时仍然引用 HTTP 地址。

带有 upgrade-insecure-requests 的 Content-Security-Policy 标头可以兜住漏网之鱼,但应当从源头修复,而不是只依赖它。

ACME 自动续期失败

Let's Encrypt 的免费证书有效期为 90 天,依靠 ACME 自动续期。续期失败时,在网站出现过期警告之前没有人会察觉。典型原因包括:

  • HTTP 验证被阻止:重定向规则、防火墙或 CDN 阻止验证服务器访问 /.well-known/acme-challenge/ 下的验证文件。
  • DNS 变更:域名现在指向另一台服务器或 CDN,验证请求落到了别处。
  • 续期任务损坏:cron 任务或 systemd 定时器在服务器升级时被删除,或者客户端运行了但 Web 服务器从未重新加载。
  • 速率限制:测试期间反复失败的尝试可能会暂时阻止新的颁发。

运行一次试运行续期以查看具体错误,确认验证路径可以通过普通 HTTP 访问,并添加重新加载钩子,让 Web 服务器采用新证书。对于位于 CDN 之后的域名,DNS 验证通常更可靠。请设置过期监控,以便在证书失效前几周收到警告。

代理和 CDN 之后的重定向循环

在反向代理、负载均衡器或 CDN 之后的网站刚启用 HTTPS 时,常会出现重定向循环。CDN 通过 HTTP 连接到您的服务器,服务器重定向到 HTTPS,CDN 又通过 HTTP 转发请求,如此循环往复。

修复循环

  • 把 CDN 设置为通过 HTTPS 连接源站,并在服务器上安装有效证书,而不是使用灵活模式。
  • 如果由代理终止 TLS,让应用信任 X-Forwarded-Proto 标头,使其知道原始请求已经是安全的。
  • 把重定向集中在一个地方。在 CDN、Web 服务器和 CMS 中各设一条重定向,很容易引发循环。

安装后的简短检查清单

  • 用外部 SSL 检测工具测试,而不只是用您的浏览器。
  • 验证您使用的每个主机名,包括 www 和邮件相关的名称。
  • 扫描关键页面是否存在混合内容,尤其是结账和联系表单。
  • 运行一次续期试运行,并确认监控已就位。
  • 检查 HTTP 是否一步重定向到 HTTPS。

如果您希望由我们代劳,我们的SSL 证书安装与配置服务涵盖长滩(Long Beach)和洛杉矶县企业网站的证书、证书链、重定向和续期设置。

SSL 错误常见问题

为什么我的网站在桌面上正常,在手机上却显示 SSL 错误?

这是缺少中间证书的典型迹象。桌面浏览器可能会补上缺口,而移动设备和应用不会。请安装完整的证书链。

续期之后需要重新安装证书吗?

如果自动续期配置正确就不需要。客户端会替换文件,重新加载钩子会通知 Web 服务器使用它们。如果续期之后仍在提供旧证书,说明缺少重新加载这一步。

CDN 上的灵活 SSL 够用吗?

它只加密访客与 CDN 之间的连接。到您服务器的流量仍未加密,而且重定向循环很常见,所以请使用带有效源站证书的完全加密。