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.com 和 b.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 就是当前生效证书的到期时间。