快速引导创建 HTTPS 虚拟服务
本指南适用于客户端通过 HTTPS 访问负载均衡,再由负载均衡访问后端的场景。转发引擎、地址和服务器池的准备方法见 HTTP 虚拟服务配置。
先确定后端是否加密
| 业务链路 | 前端配置 | 默认分发规则的处理方式 | 后端配置 |
|---|---|---|---|
| 客户端 HTTPS → 负载均衡 → 后端 HTTP | HTTPS + 客户端 SSL 策略 | HTTP 代理 | 后端 HTTP 端口 |
| 客户端 HTTPS → 负载均衡 → 后端 HTTPS | HTTPS + 客户端 SSL 策略 | HTTPS 代理 | 后端 HTTPS 端口 + 服务器 SSL 策略 |
客户端 SSL 策略控制客户端到负载均衡的连接;服务器 SSL 策略控制负载均衡到后端的连接。不能因为监听端口是 443,就将两端都按 HTTPS 配置。
第一步:上传 SSL 证书与私钥
准备业务域名的证书、对应私钥及必要的中间证书链。确认域名、生效时间和到期时间;客户端使用的域名应包含在证书允许的名称中。
进入【平台系统 → SSL 证书管理】,点击“新增”,导入证书和私钥。

可为资源使用便于识别的名称,例如 website-cert 和 website-key。后续在 SSL 策略的身份字段中分别选择它们。名称相同不等于密钥匹配,也不应将“必须同名”作为当前身份配置的前提。
证书链按业务证书在前、中间 CA 在后的顺序准备。详细导入和到期提醒说明见 SSL 证书管理。
第二步:创建客户端 SSL 策略
进入【负载流量管理 → 策略配置 → SSL 策略】,选择“客户端 SSL 策略”,点击“新增”。
- 填写名称,例如
website-client-ssl。 - 普通 TLS 业务选择“国际标准 TLS”,按客户端兼容要求选择版本;以仅允许 TLS 1.2、TLS 1.3 的业务为例,只勾选这两个版本。
- 在“TLS/TLCP 套件”中选择与证书算法相符的套件;启用 TLS 1.3 时,另行核对“TLS 1.3 套件”页签。
- 在“国际标准 TLS 身份证书”配置中选择业务证书及匹配的私钥。
- 普通单向认证业务无需开启“客户端证书校验”;只有需要客户端提交证书的业务才配置双向认证和可信 CA。
- 保存策略。

截图展示操作位置,其中的版本勾选是录制时的示例,实际以本业务允许的版本为准。国密业务请使用 国密配置指南,不要只将普通 TLS 证书替换成 SM2 证书。
会话缓存、Ticket、超时等参数可先沿用适用的策略模板,再根据实际测量调整。参数含义见 SSL 策略手册。
第三步:准备后端服务器池
进入【负载流量管理 → 服务器池】,添加后端地址和实际监听端口,并确认节点健康状态。
HTTP 后端填写 HTTP 服务端口,HTTPS 后端填写 HTTPS 服务端口。健康检查协议也要与检查目标相符;端口能建立 TCP 连接,并不一定代表 HTTP 或 TLS 业务正常。
第四步:创建 HTTPS 虚拟服务
进入【负载流量管理 → 虚拟服务】,点击“新增”。
- 选择对象类型、转发引擎或流量组,填写可用的业务监听地址和端口。
- 协议选择“HTTPS”。
- 在“默认分发规则”中选择 HTTP 代理或 HTTPS 代理,关联服务器池及七层 HTTP 策略。
- 向下滚动到“SSL 策略配置”,将“客户端 SSL 策略”设为第二步创建的策略。
- 若选择 HTTPS 代理,再配置服务器 SSL 策略:协议、套件与后端服务一致;启用服务器证书校验时导入后端的可信 CA。后端要求双向认证时,另行配置负载均衡向后端出示的客户端证书。
- 保存虚拟服务。

前后端可以使用不同协议和套件。浏览器已经握手成功,但访问出现 502 等错误时,应继续检查后端连接,不要只反复修改前端证书。
第五步:变更执行并验证
点击顶部“变更执行”,确认执行完成。使用业务域名发起请求;尚未配置 DNS 时,可在客户端用 --resolve 指定监听地址。
下面的域名、IP、端口和 CA 文件均为示例,请替换成实际配置:
curl --resolve www.example.com:443:192.0.2.10 \
--cacert /path/to/ca-chain.pem https://www.example.com/该命令同时保留业务域名、HTTP Host 与 TLS SNI。若证书由客户端已信任的 CA 签发,可省略 --cacert。不要使用跳过证书校验的结果来证明证书配置正确。
进一步核对握手协议和返回的证书链:
openssl s_client -connect 192.0.2.10:443 \
-servername www.example.com -showcerts \
-CAfile /path/to/ca-chain.pem -verify_return_error </dev/null检查协商协议、套件、证书名称与有效期,并确认业务响应内容来自预期后端。
多域名证书与 SNI
同一监听地址配置多张域名证书时,分别用各业务域名验证。直接访问 IP 不会等价于携带目标域名的 SNI,看到另一张证书时,应先核对访问方式。
SNI 未匹配到其他已配置身份时,使用配置顺序中的第一组证书和私钥作为默认身份。将身份列表从 [A, B] 改为 [A] 后,B 原域名的新握手会返回 A 的证书;客户端可能因域名不匹配拒绝连接。撤除 B 不等同于关闭该域名的业务入口,应同时核对监听与分发配置。
| 验证请求 | 应检查的结果 |
|---|---|
-servername a.example.com | 返回适用于 a.example.com 的证书 |
-servername b.example.com | 返回适用于 b.example.com 的证书 |
| 各域名的 HTTPS 请求 | 证书校验成功,响应来自预期服务器池 |
| 撤除第二组身份后,再用其原域名建立新连接 | 返回首组身份的证书,已撤除证书不再被选中;另外核对客户端证书校验结果 |
常见问题排查
| 现象 | 优先检查 |
|---|---|
| 证书不受信任或域名不匹配 | 证书链、客户端信任 CA、实际访问域名和 SNI |
| TLS 握手失败 | 两端是否有共同协议版本和套件、证书与私钥是否匹配 |
| TLS 1.2 正常、TLS 1.3 失败 | 是否启用 TLS 1.3,并在独立页签中配置相应套件 |
| HTTPS 握手成功但返回 502 | 后端地址端口、HTTP/HTTPS 处理方式、服务器 SSL 策略、CA 校验和节点状态 |
| 保存后访问仍是旧证书或旧行为 | 是否绑定了正确策略、是否执行变更、请求是否到达目标监听地址 |
