Table of contents

细节文档

在 pre 环境中切换 HTTPS 证书过程中,浏览器提示连接“不安全”。此问题发生于 AWS ALB(Application Load Balancer)中配置多个证书、并进行证书切换的场景下。

现有 Fusion 系统使用的 HTTPS 证书将在 7月中旬过期,因此预先在 pre 环境进行证书更新测试,确保上线时无缝切换。

  • 在 AWS ALB 上绑定多个证书(通过 SNI 方式),证书分别来自 ACM。
  • 使用 相同域名(如 fusion-pre.example.com),绑定了新的证书,同时仍保留旧证书(或将新证书设为默认)。
  • ALB 在绑定多个证书的情况下,即使配置了默认证书,仍会优先响应新证书。
  • 用户在访问过程中,浏览器可能出现如下问题: 浏览器提示 “不安全连接”。 显示证书为新的,但未被信任或尚未生效(传播延迟)。 短暂提示 NET::ERR_CERT_AUTHORITY_INVALID 等错误。
  • 浏览器提示 “不安全连接”。
  • 显示证书为新的,但未被信任或尚未生效(传播延迟)。
  • 短暂提示 NET::ERR_CERT_AUTHORITY_INVALID 等错误。
  • 在相同 ALB 下添加新证书,域名未发生更改,浏览器中出现证书异常提示;
  • 在不同 ALB 上切换证书时,虽然证书正确绑定,但由于 DNS 解析生效存在延迟,依然出现短时间“不安全”状态。

AWS ALB 支持绑定多个证书,具体行为如下:

  • ALB 通过 SNI(Server Name Indication)进行 TLS 握手匹配;
  • 若域名匹配多个证书,ALB 不保证使用哪一个;
  • 可以配置默认证书,但仅在客户端不支持 SNI 或无法匹配时使用。

📌 参考:

  • 误认为默认证书具有优先级:实际上,在多个 SNI 证书均匹配的情况下,ALB 的行为不确定;
  • 证书生效传播时间差异:新证书虽在 ACM 中已颁发,但在全球浏览器/ISP 缓存未刷新前会出现中断;
  • 单 ALB 多证书更新易产生竞态:更新过程中新旧证书并存容易触发证书切换的不稳定行为。

项目风险等级描述证书更新生效延迟中新证书 ACM 签发到 ALB 应用有一定传播时延ALB 多证书绑定行为高不可预知的证书响应顺序可能引发浏览器“不安全”警告DNS 生效延迟中若证书通过新 ALB 切换,DNS 更新过程会引起短暂连接错误

  • 推荐方式: 独立新建一个 ALB; 提前在新 ALB 上完成新证书绑定及验证; 通过 DNS 切换到新 ALB(可使用较低 TTL 配置,减少传播延迟); 等待旧证书到期后再销毁旧 ALB;
  • 独立新建一个 ALB;
  • 提前在新 ALB 上完成新证书绑定及验证;
  • 通过 DNS 切换到新 ALB(可使用较低 TTL 配置,减少传播延迟);
  • 等待旧证书到期后再销毁旧 ALB;
  • 创建 新 ALB + 新证书;
  • 测试验证完毕后再通过 Route 53 或 DNS 提供商切换 A 记录;
  • 确保 TTL 降至 60s 以下,提升切换响应性;
  • 通知测试用户提前清除本地浏览器缓存;
  • 使用 Digicert/GlobalSign 等权威根证书,减少信任链构建时间;
  • 可使用浏览器调试工具(如 Chrome DevTools 的 Security 面板)定位证书来源与链路状态;