Skip to content

负载均衡 SSL证书配置

负载均衡是最典型的「证书装在入口、后端全是 HTTP」的架构。证书只需要装在 LB 的 HTTPS 监听上,后端服务器完全不用感知。反过来说,一旦 LB 上的证书过期,整个服务就全挂了,所以这是最值得配自动部署的地方之一。

支持范围

云厂商负载均衡类型
阿里云应用型负载均衡(ALB)、传统型负载均衡(CLB)、网络型负载均衡(NLB)
腾讯云负载均衡(CLB)
华为云弹性负载均衡(ELB)
京东云应用型负载均衡(ALB)
百度智能云普通型负载均衡(BLB)、应用型负载均衡(BLB)

前置条件

  1. 已经申请好一张覆盖目标域名的证书,见 SSL证书配置
  2. 已添加对应云厂商的 访问秘钥,并且该密钥有负载均衡和证书管理的权限。
  3. 负载均衡实例上已经存在 HTTPS 监听。yunplus 是替换监听上的证书,不会替你创建监听。

先建好 HTTPS 监听

如果 LB 上只有 HTTP 监听,自动部署无处可装。请先在云厂商控制台上创建 HTTPS 监听(可以先随便传一张证书占位),再回来配置自动部署。

部署流程

整个过程在云厂商侧完成,不需要你的服务器参与,也不会中断连接。

操作步骤

  1. 进入 证书配置列表,找到目标证书,点击「自动部署」。
  2. 点击「新增自动部署」,在弹出的选择器中选择云厂商,再选择对应的负载均衡类型。

选择负载均衡产品

  1. 填写表单。

负载均衡部署表单

字段说明
访问秘钥选择 LB 实例所在云账号的密钥
地域LB 实例所在地域,选完之后下方的下拉才会加载数据
域名从厂商 API 拉取的、该 LB 上已配置的域名列表中选择
  1. 点击「提交」完成配置。系统会立刻用当前有效证书部署一次,之后每次续期自动重新部署。

各厂商的差异

阿里云:三种 LB 要选对

阿里云有三条产品线,控制台里名字很接近,选错了会在下拉里找不到实例:

类型什么时候用特点
ALB 应用型七层 HTTP/HTTPS 业务支持基于域名和路径的转发规则
CLB 传统型老的 SLB 实例监听按端口区分,一个端口一个监听
NLB 网络型四层 TCP/TLS 高性能场景支持 TLS 卸载

不确定实例是哪一种,去阿里云控制台看实例 ID 前缀:ALB 是 alb-,CLB 是 lb-,NLB 是 nlb-

腾讯云 CLB:开了 SNI 要注意域名

腾讯云 CLB 的 HTTPS 监听如果开启了 SNI(服务器名称指示),证书是绑定在转发规则的域名上,而不是监听本身。这种情况下,域名下拉里列出的是各条转发规则的域名,要选中证书实际覆盖的那一个。

如果没开 SNI,一个监听只能有一张证书,直接选监听对应的域名即可。

一个监听多个域名的场景

同一个 CLB 监听下挂了 a.example.comb.example.com 两条转发规则,且用的是同一张 *.example.com 泛域名证书,需要为每个域名各建一个部署任务。部署不消耗积分,建多个没有额外成本。

华为云 ELB

华为云的证书是先上传到 SSL 证书管理服务,再绑定到 ELB 监听。yunplus 会一并完成这两步,你只需要选好地域和域名。

京东云 ALB / 百度云 BLB

百度云的「普通型」和「应用型」是两个独立产品,和阿里云 CLB/ALB 的区别类似。普通型对应传统四层/七层 LB,应用型支持更细的转发规则。同样可以通过实例 ID 判断。

验证配置

配置完成后,在自动部署列表中查看该任务的执行状态。显示成功后,可以去云厂商控制台的监听详情里核对证书,看到期时间是不是刚更新过。

也可以直接用命令行验证线上实际生效的证书:

bash
echo | openssl s_client -servername www.example.com -connect www.example.com:443 2>/dev/null | openssl x509 -noout -dates -issuer

输出里的 notAfter 就是当前生效证书的到期时间。