证书中心里已经有了新证书,网站却还在报证书过期。在阿里云负载均衡(CLB,原 SLB;以及 ALB)上,这种情况很常见:浏览器拿到的是 HTTPS 监听上绑定的证书,一张证书关联几个监听,监听里又有扩展域名,换证时漏掉一处,那里就还是旧证书。以后证书有效期还会继续缩短(2027 年 3 月 15 日起最长 100 天),手动换证只会越来越频繁。
下面先说明 CLB 和 ALB 分别在哪里换证,再介绍怎样让免费证书续期后自动部署到这些监听,省去逐个上传和维护部署脚本。
证书续期后,监听为什么还在使用旧证书
新证书签发或上传完成后,原来的监听仍可能引用旧证书。负载均衡在 HTTPS 监听上与浏览器建立 TLS 连接,所以只换后端服务器的证书,也不会改变浏览器看到的这张证书。
新证书 → 上传到证书服务 → 更新 HTTPS 监听的证书绑定
↓
浏览器连接时收到新证书
例如,同一张证书用在上海的 CLB 和新加坡的 ALB 上。只更新上海的监听,新加坡仍会使用旧证书。即使只有一个监听,也要检查它的默认证书和各域名使用的证书。
CLB 和 ALB 的证书更换位置
CLB:默认证书与扩展域名
在 CLB 实例的「监听」页找到 HTTPS 监听,点击「管理证书」,选择新的默认证书。配置了扩展域名时,还要更新对应域名的证书;只改默认证书会漏掉这些绑定。
同一张旧证书被多个监听或扩展域名引用时,可以从「证书管理 → 替换证书」统一更换关联对象,操作入口见阿里云 CLB 证书管理。执行前核对关联范围,换证安排在业务低峰期。
ALB:默认证书与扩展证书
ALB 使用的证书先在数字证书管理服务中准备,再绑定到监听。进入实例的「监听 → 管理证书 → 服务器证书」,可以更换默认证书,或添加新的扩展证书。官方操作说明列出了两个入口。
假设监听的默认证书服务于 www.example.com,api.example.net 使用另一张扩展证书。给 API 换证时,应更新它对应的证书绑定,保留网站使用的证书。新证书生效后再处理旧绑定,不要把整个监听的证书列表一起替换掉。
由 Kubernetes 的 ALB Ingress 管理的监听不适用上面的操作,应通过集群里的证书配置更新。
免费证书不能交给阿里云托管
阿里云的证书托管服务可以自动续签并部署到负载均衡,但只对付费的正式证书开放。免费的个人测试证书有效期 3 个月,不能续费也不能托管,到期要重新申请,再把上面的换证步骤做一遍,具体限制见阿里云免费证书只有 3 个月?。
已经购买正式证书并开通托管的,继续用官方托管即可。想用免费证书又不想每次手动换,适合交给证书自动化平台,例如 LapseZero:它用 Let's Encrypt 免费签发和续期证书,并自动部署到阿里云负载均衡、CDN、OSS 和自己的服务器。
用 LapseZero 自动续期并部署到 CLB/ALB
证书由 Let's Encrypt 免费签发,不占用阿里云每年 20 张的免费证书额度。接入时完成三件事:
- 验证域名:添加域名,按页面提示配置 DNS 委派的 CNAME 记录,以后续期沿用这些记录。
- 授权云账号:连接阿里云子账号,按控制台引导授权 CLB、ALB 部署权限,无需提供 DNS 写权限。
- 选择监听:选中要更新的 HTTPS 监听,发起首次证书申请。
后续续期和部署会自动完成,不用逐个上传证书,也不用维护换证脚本。同一张证书用在多个地域、CDN 或 Nginx 上,就把对应目标都加进去;需要避开业务高峰时,可以设置部署窗口。
LapseZero 会按证书覆盖的域名更新绑定,保留其他域名的证书和原有 TLS 配置。ALB 同一域名同时使用 RSA、ECC 两张证书的配置暂不支持接管。
确认监听已经用上新证书
在部署目标里设置一个生效检查地址,例如 https://api.example.com。以后每次部署完成,LapseZero 都会连接这个地址,核对返回的证书是否与本次部署一致。部署失败,或者检查发现仍在使用旧证书时,会通过邮件、钉钉、飞书等已配置的渠道通知你。
检查地址应直接指向负载均衡,且域名被证书覆盖。如果业务域名前面还有 CDN,用它检查会拿到 CDN 的证书。业务入口也可以另外用免费 SSL 检测工具查看。
免费版包含 3 个域名、5 个部署目标。可以先接入一个现有监听,再加入其他使用这张证书的位置。