Skip to content

快速引导创建HTTPS虚拟服务

简介

HTTPS 虚拟服务与 HTTP 虚拟服务的核心区别在于:HTTPS 需要对客户端提供加密传输(SSL/TLS)。这意味着您需要额外准备 SSL 证书、私钥,并配置 SSL 策略来告诉负载均衡"用什么样的加密方式与客户端通信"。

本教程将在快速创建HTTP虚拟服务的基础上,重点补充 HTTPS 特有的配置步骤。如果您还未阅读 HTTP 虚拟服务的教程,建议先阅读那篇,因为创建转发引擎、服务器池等步骤是完全一样的。

操作步骤概览

HTTPS 虚拟服务比 HTTP 多出两个关键步骤:

  1. 上传 SSL 证书与私钥 — 把你的网站证书导入到平台
  2. 创建 SSL 客户端策略 — 决定加密套件、会话复用等安全参数
  3. 创建转发引擎(同 HTTP,略)
  4. 创建服务器池(同 HTTP,略)
  5. 创建 HTTPS 虚拟服务 — 关联证书与 SSL 策略
  6. 变更执行并验证

下面重点展开步骤 1、2、5,其余步骤请参考 HTTP 教程。

第一步:上传 SSL 证书与私钥

准备工作

您需要从证书颁发机构(如 DigiCert、Let's Encrypt,或者公司内部 CA)获取以下文件:

  • 服务器证书链文件.crt / .pem):包含您的网站证书和中间 CA 证书。如果中间 CA 给了多个文件,请按"网站证书在上、中间 CA 在下"的顺序合并成一个文件。
  • 私钥文件.key / .pem):创建证书申请(CSR)时生成的那个私钥。

注意

证书和私钥在矩尺平台上使用同一个名称进行配对。上传时,证书名称和私钥名称填写相同的值即可(例如都叫 my-https-cert),系统通过名称将它们关联。证书链中的多个证书需在同一个文本框中按顺序粘贴完整。

上传操作

在菜单【平台系统 → SSL 证书管理】中,点击"新增"按钮,打开证书配置页面:

SSL证书配置

字段说明
证书名称自定义一个名字,例如 my-https-cert私钥名称填相同的值
证书内容粘贴完整的证书链(网站证书 + 中间 CA)
私钥名称与证书名称保持一致,例如 my-https-cert
私钥内容粘贴私钥文件的内容

证书上传后,平台会自动识别证书的域名、生效时间、到期时间、颁发者等信息。证书临近过期时系统会发出提醒(黄色标记 30 天内过期,红色标记已过期)。

SSL证书列表

更多细节参见 SSL 证书管理

第二步:创建 SSL 客户端策略

SSL 客户端策略决定了负载均衡"面对客户端(浏览器/APP)时使用什么样的加密行为"。这是 HTTPS 最关键的一步配置。

在菜单【SLB 本地负载 → 策略配置 → SSL 策略】中,切换到"客户端 SSL 策略"页签,点击"新增":

客户端SSL策略配置

下面逐字段解释各项配置的含义和推荐值:

安全套件

安全套件定义了一组加密算法,用于客户端与负载均衡之间的 SSL 握手。通俗理解:它决定了"双方用哪种密码本交流"。

  • 格式:多个套件用冒号 : 分隔,例如 ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
  • 推荐:如果面向公网,建议至少包含 ECDHE-RSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256,兼顾安全与兼容性。
  • 注意:过于老旧的套件(如含 RC43DESSHA1 的)存在已知漏洞,不建议使用。

服务器证书

从第一步上传的证书中选择证书与私钥。这就是发送给客户端、用于建立 HTTPS 连接的那份证书。

  • 证书:选择你上传的服务器证书(如 my-https-cert
  • 私钥:选择对应的私钥(名字与证书相同)

支持的 SSL 协议

推荐只勾选 TLS 1.2TLS 1.3。TLS 1.0 / 1.1 已被各大浏览器淘汰,SSL 3.0 及其以下版本存在严重安全漏洞(如 POODLE 攻击)。

Session 缓存

  • 开启:负载均衡在本地内存中缓存 SSL 会话 ID。当同一个客户端短时间内再次连接时,可以跳过完整的 SSL 握手,直接复用之前的会话密钥,从而减少握手耗时(约 50%~80%)
  • 关闭:每次连接都执行完整的 SSL 握手。
  • 建议:对公网业务开启。对于需要极高安全性、不能容忍任何会话复用的场景(如金融交易),可关闭。

Session Ticket

  • 开启:由负载均衡生成一个加密的 ticket 发给客户端,客户端下次连接时带上这个 ticket,服务器解密后直接恢复会话。与 Session 缓存不同,ticket 存储在客户端侧,适合多台负载均衡设备的场景(因为不需要共享内存)。
  • 关闭:不使用 ticket 机制。
  • 建议:集群部署时开启。单机部署可只用 Session 缓存。开启后系统会随机生成加密 ticket 的密钥。

Session 过期时间

会话复用的有效时长。超过这个时间后,缓存的会话 ID 或 ticket 将失效,必须重新握手。

  • 建议值:**300 秒(5 分钟)到 3600 秒(1 小时)**之间。
  • 安全考量:时间越长,重放攻击的窗口越大;时间越短,安全但频繁握手影响性能。对大多数 Web 应用,10~30 分钟是合理的折中。

DH 算法参数与 ECDH 椭圆曲线

  • DH 算法参数:用于 DH 密钥交换算法的参数文件。一般留空即可,系统有默认值。
  • ECDH 椭圆曲线:例如 prime256v1:secp384r1,或直接填 auto 让系统自动选择高效安全的曲线。

优先使用服务器安全套件

  • 开启:负载均衡强制使用自己偏好的加密套件顺序(更安全)。
  • 关闭:优先使用客户端偏好的套件顺序(兼容性更好)。
  • 建议:公网业务关闭以获得更好的兼容性;内网或受控环境可开启以增强安全性。

SSL 握手最大超时时间

SSL 握手阶段的超时阈值。如果在这个时间内握手未完成,连接将被断开。

  • 默认值一般够用。如果遇到弱网客户端(如 IoT 设备、偏远地区移动网络),可适当调大。

SSL 数据缓冲区大小

发送 SSL 数据帧时的缓冲区大小,影响吞吐性能。默认值 16KB 适合大多数场景,不需要修改。

客户端证书校验

  • 开启:要求客户端也必须出示证书(双向 SSL / mTLS)。适用于服务间通信、API 网关等场景。
  • 关闭(默认):只由服务端提供证书,这是普通网站的常规做法。

提示

SSL 客户端策略的完整字段说明参见 SSL 策略用户手册

第三步:创建转发引擎

此步骤与 HTTP 虚拟服务完全一致。在菜单【平台系统 → 基础设施 → 转发引擎】中新增,详见快速创建HTTP虚拟服务 - 创建转发引擎

第四步:创建服务器池

此步骤与 HTTP 虚拟服务完全一致。在菜单【SLB 本地负载 → 服务器池】中新增,健康检查、负载均衡算法等配置详见快速创建HTTP虚拟服务 - 创建服务器池

第五步:创建 HTTPS 虚拟服务

在菜单【SLB 本地负载 → 虚拟服务】中,点击"新增"按钮。

前面部分(名称、对象类型、转发引擎、监听地址和端口)的填写方式与 HTTP 虚拟服务相同,详见虚拟服务用户手册

关键区别在于:

  • 协议:选择 HTTPS(不是 HTTP)
  • SSL 客户端策略:选择第二步创建的 SSL 客户端策略

虚拟服务监听地址

拉到页面下方配置默认分发规则:

  • 处理方式:选择"HTTP 代理"(解密后在负载均衡侧以 HTTP 形式转发给后端服务器)
  • 服务器池:选择第四步创建的服务器池
  • HTTP 策略:选择系统内置的"HTTP 七层策略模板"

虚拟服务默认分发规则

关于处理方式

HTTPS 虚拟服务支持两种处理方式:

  • HTTPS 代理:负载均衡解密流量后,重新加密后再传给后端服务器(后端也必须是 HTTPS)。此时需配置服务器SSL策略,由该策略决定重新加密时使用的安全套件。
  • HTTP 代理:负载均衡解密 HTTPS 流量后,以 HTTP 明文转发给后端(后端无需配置证书,常见选择)

大多数场景选择"HTTP 代理"即可,这样 SSL 证书只需在负载均衡侧维护一份。

第六步:变更执行并验证

点击"确认"按钮保存后,再点击"变更执行"使配置生效。

变更执行

验证方式:用浏览器访问 https://<虚拟服务监听地址>:<端口>,地址栏应显示安全锁图标。也可以通过 curl -v https://<地址>:<端口> 查看 SSL 握手详情。

如果遇到 SSL 相关错误:

  • 证书不受信任:检查证书链是否完整(网站证书 + 中间 CA 是否都在证书内容中)
  • SSL 协议版本不支持:检查 SSL 策略中是否勾选了客户端浏览器支持的协议版本
  • 加密套件不匹配:检查安全套件是否兼容客户端,可尝试关闭"优先使用服务器安全套件"

更多 HTTPS 虚拟服务的配置选项(如双向 SSL、SNI、访问控制等)请参考 虚拟服务用户手册SSL 策略用户手册