阿里云SLB负载均衡HTTPS证书配置与转发规则完全指南
引言:为什么需要在SLB上配置HTTPS
在今天的互联网环境中,HTTPS已经不再是可选项,而是每一个Web应用的必选项。从浏览器对HTTP页面标记“不安全”的警告,到搜索引擎排名算法对HTTPS网站的明确偏好,再到支付、登录等敏感业务对数据加密传输的刚性需求,HTTPS的普及已经成为不可逆转的趋势。
然而,对于部署在阿里云上的业务系统而言,仅仅在ECS服务器上安装SSL证书远远不够。当业务流量通过负载均衡SLB(Server Load Balancer)进行分发时,证书的部署位置直接决定了架构的复杂度与安全性。将HTTPS证书配置在SLB层面,实现SSL/TLS卸载(SSL Offloading),意味着加密解密的高计算开销由SLB承担,后端ECS服务器只需处理HTTP明文流量,从而显著降低后端服务器的CPU负载,提升整体吞吐能力。
更进一步,SLB的七层处理能力使得基于域名、URL路径等精细化转发规则成为可能——同一个SLB实例可以根据请求的域名或路径,将流量分发到不同的后端服务器组,实现多站点共用同一个负载均衡实例的高效架构。本文将系统性地讲解阿里云SLB配置HTTPS证书与转发规则的完整路径,从产品选型到证书上传,从监听配置到转发策略,从基础操作到高阶实践,力求为读者提供一份可落地的全流程指南。
一、SLB产品家族选型:ALB、NLB与CLB的HTTPS能力对比
在开始配置之前,首先需要明确一个问题:你使用的是哪一种SLB产品?阿里云SLB并非单一产品,而是一个包含三种不同形态的负载均衡家族。不同产品在HTTPS支持能力上存在显著差异,选型错误可能导致后续配置无法满足业务需求。
1.1 应用型负载均衡ALB
ALB(Application Load Balancer)是阿里云当前主推的七层负载均衡产品,面向HTTP、HTTPS、gRPC和QUIC协议。ALB在HTTPS配置方面拥有最完整的能力矩阵:支持基于域名和URL路径的内容路由、支持SNI(Server Name Indication)多域名证书、支持全链路HTTPS加密(客户端到ALB、ALB到后端服务器)、支持HTTP/2和HTTP/3(QUIC)、支持SSL卸载与证书托管。单实例可支撑百万级QPS,是绝大多数Web网站、API网关、微服务架构的首选。
1.2 网络型负载均衡NLB
NLB(Network Load Balancer)专注于四层网络协议(TCP/UDP),基于高性能网络转发架构设计,单实例支持亿级并发连接,转发延迟低至微秒级。NLB同样支持SSL卸载,称为TCPSSL监听,可以在四层完成TLS终止,适用于实时音视频、游戏服务器、数据库代理等对性能要求极高的场景。但NLB不具备七层的内容路由能力,无法基于域名或URL路径做精细化转发。
1.3 传统型负载均衡CLB
CLB(Classic Load Balancer)是阿里云早期的经典负载均衡产品,同时支持四层(TCP/UDP)和七层(HTTP/HTTPS)负载均衡。CLB的七层HTTPS监听支持基本的证书绑定和会话保持,但不支持基于域名和URL路径的转发规则,这是CLB与ALB在七层能力上的核心差距。CLB目前正逐步被ALB替代,对于新业务,建议优先选择ALB。
1.4 选型建议速览
- Web网站、API服务、微服务:优先选择ALB,享受完整的七层转发与HTTPS高级特性。
- 高性能四层业务(游戏、直播、音视频):选择NLB,获取极致性能与TCPSSL支持。
- 传统简单业务或成本敏感场景:CLB仍可满足基本需求,但需注意其七层能力的局限性。
需要先登录阿里云控制台,点击:阿里云控制台
本文后续的配置讲解将主要基于ALB展开,这是当前绝大多数HTTPS业务场景的最优选择。部分通用配置(如证书上传、基本监听参数)同样适用于CLB的七层HTTPS监听。
二、SSL证书的准备与上传
在配置HTTPS监听之前,首要任务是将SSL证书上传到阿里云的证书管理系统。SLB支持两种来源的证书:一是在阿里云数字证书管理服务中签发或托管的证书;二是用户自行从第三方CA机构购买并上传的证书。
2.1 证书格式要求
阿里云SLB仅支持PEM格式的证书文件。PEM是一种文本格式的证书编码方式,通常以 .pem、.crt 或 .cer 为文件扩展名。PEM格式的证书文件内容以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾。私钥文件则以 -----BEGIN PRIVATE KEY----- 或 -----BEGIN RSA PRIVATE KEY----- 开头。
如果手头的是其他格式的证书,需要进行格式转换:
- PFX(PKCS#12)转PEM:使用OpenSSL命令
openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes - DER转PEM:使用
openssl x509 -inform der -in certificate.cer -out certificate.pem
2.2 通过控制台上传证书
上传证书的操作路径如下:
- 登录阿里云控制台,进入数字证书管理服务(原SSL证书服务)控制台。
- 在左侧导航栏选择证书管理 > SSL证书管理,点击上传证书按钮。
- 在上传页面中,证书标准选择“国际标准”或“国密标准”(根据业务需求)。
- 证书名称:填写一个便于识别的名称,建议包含域名和有效期信息,如
example.com_2026。 - 证书文件:点击“上传文件解析”,选择本地PEM格式的证书文件(公钥),系统会自动解析并填充证书内容。
- 私钥文件:点击“上传文件解析”,选择对应的私钥文件(PEM格式)。
- 点击确定完成上传。上传成功后,证书会出现在证书列表中,状态为“已托管”。
上传过程中,系统会自动校验证书链的完整性与域名匹配性。如果证书链不完整(例如缺少中间证书),上传可能会失败或导致浏览器访问时提示“证书不安全”。
2.3 通过阿里云CLI上传证书
对于需要批量上传或自动化运维的场景,可以使用阿里云CLI工具(Alibaba Cloud CLI)完成证书上传。以下是一个完整的示例:
# 首先配置阿里云CLI的认证信息
aliyun configure
# 上传服务器证书
# 注意:证书内容需要从PEM文件中读取并转义
aliyun slb UploadServerCertificate \
--ServerCertificateName "example_com_2026" \
--CertificateContent "$(cat /path/to/certificate.pem)" \
--PrivateKeyContent "$(cat /path/to/private.key)"
# 上传成功后,CLI会返回CertificateId,后续配置监听时需要使用此ID对于使用ALB的场景,证书的上传仍然通过数字证书管理服务完成,ALB在配置监听时引用证书ID即可。
三、HTTPS监听的创建与核心参数配置
证书上传完成后,下一步是在SLB实例上创建HTTPS监听。监听(Listener)是SLB接收用户请求的入口,包含协议、端口、证书、转发规则等配置。
3.1 控制台创建HTTPS监听(以ALB为例)
- 登录阿里云控制台,进入应用型负载均衡ALB控制台。
- 在顶部菜单栏选择实例所属的地域,在实例页面找到目标ALB实例。
- 在操作列单击创建监听。
- 在配置监听页面中:
- 监听协议:选择
HTTPS - 监听端口:填写
443(HTTPS标准端口) - SSL证书:在下拉框中选择已上传的证书
- 监听协议:选择
- 配置后端服务器组:选择已创建的服务器组,或新建服务器组并添加ECS实例。
- 配置健康检查:建议保持默认设置或根据业务特性调优。
- 点击下一步直至提交,完成监听创建。
3.2 核心参数深度解析
3.2.1 前端端口与后端端口
前端端口是SLB对外提供服务的端口,HTTPS通常使用443端口。后端端口是SLB向后端ECS服务器转发请求时使用的端口,可以是80(HTTP)或443(HTTPS)。如果选择后端协议为HTTP、端口为80,则SLB完成SSL卸载后将解密后的HTTP请求转发给后端ECS,后端ECS无需配置证书。如果选择后端协议为HTTPS,则实现全链路加密,但后端ECS也需要配置证书。
3.2.2 调度算法
SLB支持多种调度算法,决定流量如何分配到后端服务器:
- 加权轮询(WRR):按权重比例轮流分配,适合后端服务器性能均衡的场景。
- 加权最小连接数(WLC):优先分配给当前连接数最少的服务器,适合长连接场景。
- 一致性哈希:基于源IP或URL参数进行哈希,确保同一用户的请求始终转发到同一台后端服务器。
3.2.3 会话保持
会话保持(Session Stickiness)确保来自同一客户端的请求始终被转发到同一台后端服务器。ALB支持两种会话保持方式:
- 植入Cookie:ALB在响应中插入自定义Cookie,后续请求携带此Cookie即保持会话。
- 源IP:基于客户端源IP地址进行哈希,相同IP的请求转发到同一后端。
3.2.4 TLS安全策略
TLS安全策略控制着SSL/TLS握手过程中使用的协议版本和加密套件。阿里云SLB提供了多种预置安全策略,建议选择TLS 1.2+或TLS 1.2/1.3策略,禁用SSLv3和TLS 1.0等不安全的旧版本协议。安全策略的选择需要在安全性与兼容性之间做平衡——TLS 1.3提供了更高的安全性,但部分老旧客户端可能不支持。
3.2.5 HTTP/2与HTTP/3支持
ALB的HTTPS监听支持开启HTTP/2协议,显著提升页面加载性能。在监听配置中勾选“开启HTTP/2”即可。对于追求极致性能的场景,ALB还支持基于QUIC的HTTP/3,但需要客户端支持。
3.3 通过OpenAPI创建HTTPS监听
对于基础设施即代码(IaC)或自动化运维场景,可以通过阿里云OpenAPI创建HTTPS监听。以下是使用 CreateLoadBalancerHTTPSListener 接口的示例(适用于CLB):
# 使用阿里云CLI调用OpenAPI创建HTTPS监听
aliyun slb CreateLoadBalancerHTTPSListener \
--LoadBalancerId "lb-xxxxxxxxx" \
--ListenerPort 443 \
--BackendServerPort 80 \
--Bandwidth -1 \
--XForwardedFor true \
--Scheduler "wrr" \
--StickySession "on" \
--StickySessionType "insert" \
--CookieTimeout 86400 \
--HealthCheck "on" \
--HealthCheckType "tcp" \
--ServerCertificateId "xxxxxxxxx"
# 创建完成后,需要启动监听
aliyun slb StartLoadBalancerListener \
--LoadBalancerId "lb-xxxxxxxxx" \
--ListenerPort 443对于ALB,创建HTTPS监听使用 CreateListener 接口,参数结构略有不同,但核心逻辑一致。
3.4 多域名HTTPS证书配置(SNI)
当同一个SLB实例需要为多个不同的域名提供HTTPS服务时,SNI(Server Name Indication)扩展就派上了用场。SNI允许在同一个IP和端口上绑定多个SSL证书,SLB根据客户端请求中携带的域名(Host头)自动选择匹配的证书完成TLS握手。
在ALB中配置SNI的步骤如下:
- 在创建HTTPS监听时,在“SSL证书”配置区域点击添加扩展域名。
- 输入需要支持的域名(如
api.example.com、www.example.com)。 - 为每个域名分别选择对应的SSL证书。
- ALB会根据客户端请求的SNI域名自动匹配证书。
需要注意的是,SNI要求客户端(浏览器)支持SNI扩展。现代浏览器均已支持,但对于一些老旧的自定义客户端,可能需要额外处理。
四、基于域名与URL路径的转发规则配置
转发规则(Forwarding Rules)是ALB七层能力的核心体现。通过转发规则,可以将来自不同域名或不同URL路径的请求,分发到不同的后端服务器组,实现单实例多站点、微服务路由等高级架构。
4.1 转发规则的基本概念
转发规则由两部分组成:
- 转发条件(Condition):定义匹配请求的规则,支持基于域名(Host)和URL路径(Path)的匹配。
- 转发动作(Action):定义匹配成功后执行的操作,包括转发到指定服务器组、重定向、重写等。
4.2 基于域名的转发配置
适用场景:同一个ALB实例需要为多个不同域名(如 www.example.com 和 api.example.com)提供服务,且不同域名对应不同的后端服务器组。
配置步骤:
- 在ALB实例的监听页签中,找到目标HTTPS监听,点击配置转发策略。
- 点击添加转发策略,在转发条件中选择域名。
- 输入要匹配的域名,支持精确匹配(如
www.example.com)和通配符匹配(如*.example.com)。 - 在转发动作中选择转发至,并选择目标虚拟服务器组。
- 点击确定保存配置。
4.3 基于URL路径的转发配置
适用场景:同一个域名下不同URL路径对应不同的后端服务。例如 /api/* 转发到API服务器组,/static/* 转发到静态资源服务器组。
配置步骤:
- 在转发条件中选择路径。
- 输入URL路径匹配规则,支持前缀匹配(如
/api/)和精确匹配(如/login)。 - 在转发动作中选择对应的后端服务器组。
- 保存配置。
4.4 组合匹配与优先级
转发规则支持域名和路径的组合匹配,即同时指定域名和路径条件,只有两者都匹配时才会触发对应的转发动作。当存在多条转发规则时,ALB按照规则的优先级顺序进行匹配(数字越小优先级越高),匹配到第一条规则后即停止后续匹配。因此,需要将更具体的规则(如精确路径匹配)设置为更高的优先级,将默认规则(如 / 通配)设置为较低的优先级。
4.5 转发规则数量限制
一个HTTP或HTTPS监听可添加的域名和URL转发规则数量不超过40条。如果业务需要更复杂的路由策略,可以考虑使用阿里云MSE云原生网关或API网关等产品。
五、HTTP自动跳转HTTPS:实现全站强制加密
配置好HTTPS监听后,另一个常见需求是将所有HTTP请求(80端口)自动重定向到HTTPS(443端口),实现全站强制加密。阿里云SLB原生支持HTTP重定向功能。
5.1 配置思路
核心思路是:先配置好HTTPS:443监听,再添加HTTP:80监听,并在HTTP监听上开启重定向功能,将所有HTTP请求转发到HTTPS监听。
5.2 控制台配置步骤
- 确保HTTPS:443监听已创建并正常工作。
- 在同一个SLB实例上添加HTTP监听:
- 监听协议:
HTTP - 监听端口:
80
- 监听协议:
- 在HTTP监听配置中,展开高级配置,找到监听转发选项并开启。
- 在转发目标中选择已创建的HTTPS:443监听。
- 提交配置,完成。
5.3 验证效果
配置完成后,在浏览器中访问 http://你的域名,如果自动跳转到 https://你的域名 并正常显示网站内容,说明配置成功。
5.4 注意事项
- 目前阿里云SLB的HTTP重定向功能仅支持80端口向443端口的重定向。如果涉及其他端口的跳转需求,需通过工单申请。
- 如果网站同时使用了CDN加速,需要在CDN和SLB上都配置好SSL证书,避免出现混合内容(Mixed Content)错误。
- 重定向状态码默认使用301(永久重定向)或302(临时重定向),可根据业务需求选择。
六、高级特性与最佳实践
6.1 全链路HTTPS加密
ALB支持全链路HTTPS加密功能,即客户端到ALB、ALB到后端服务器之间都使用HTTPS协议传输。这种架构适用于对数据安全要求极高的场景(如金融、医疗等)。配置方式是在创建HTTPS监听时,将后端协议选择为HTTPS,并确保后端ECS服务器也配置了有效的SSL证书。需要注意的是,全链路HTTPS会增加后端服务器的CPU负载,需要在安全性与性能之间权衡。
6.2 双向认证(mTLS)
对于需要同时验证客户端和服务端身份的场景(如企业内部API、物联网设备接入),可以开启双向认证(mTLS)。在双向认证中,客户端需要提供CA证书签发的客户端证书,SLB在TLS握手时验证客户端证书的合法性。配置双向认证需要在HTTPS监听中上传CA证书,并开启“双向认证”开关。NLB也支持TCPSSL双向认证。
6.3 健康检查参数调优
健康检查是SLB保证高可用的关键机制。对于HTTPS监听,健康检查同样支持HTTPS协议。以下是几个重要的调优参数:
- 健康检查间隔:默认2秒,建议根据业务容忍度调整。间隔越短,故障发现越快,但开销也越大。
- 健康检查超时时间:默认5秒,如果后端服务器响应较慢,可适当增大。
- 健康检查阈值:判定为不健康的连续失败次数,默认3次。建议保持默认,避免网络抖动导致的误判。
- 健康检查域名与路径:对于七层健康检查,可以指定具体的域名和路径,更准确地探测业务可用性。
6.4 获取客户端真实IP
当SLB将请求转发到后端ECS时,后端服务器默认看到的是SLB的内网IP,而非客户端的真实IP。为了在应用日志中记录客户端真实IP,需要开启X-Forwarded-For头传递功能。在ALB的HTTPS监听配置中,默认会携带 X-Forwarded-For、X-Forwarded-Proto 和 X-Forwarded-Port 头信息,后端应用从这些HTTP头中解析即可获取客户端真实信息。
6.5 证书更新与自动化
SSL证书具有有效期(通常为1年或更短),证书过期是HTTPS服务中断的常见原因。建议采取以下措施:
- 在阿里云数字证书管理服务中开启证书到期提醒,通过短信或邮件提前30天、15天、7天接收通知。
- 对于使用阿里云免费证书(如DV证书)的用户,可以利用阿里云的自动续签功能。
- 对于企业级用户,可以编写自动化脚本,通过OpenAPI定期检查证书有效期并在到期前自动更新。
- 证书更新后,需要在SLB的HTTPS监听中重新选择新的证书或更新证书内容。ALB支持证书的热更新,无需重启实例。
七、常见问题与排障
7.1 证书上传失败
证书上传失败的常见原因包括:证书格式不是PEM、证书链不完整(缺少中间证书)、私钥与证书不匹配、证书包含中文名称等。解决方案:使用OpenSSL检查证书链完整性,确保证书文件包含完整的证书链(根证书+中间证书+服务器证书),或从CA机构重新下载完整链证书。
7.2 浏览器提示“证书不安全”
可能原因:证书链不完整、TLS协议版本过低、浏览器信任库未更新。排查步骤:使用SSL Labs或myssl.com等在线工具检测证书链和TLS配置;确保证书由受信任的CA签发;确保TLS安全策略选择了包含TLS 1.2/1.3的版本。
7.3 访问HTTPS站点显示旧证书
通常是因为证书更新后未在SLB监听中生效。解决方案:进入SLB监听配置,确认服务器证书下拉框中选中的是新证书。如果已选择新证书但仍显示旧证书,检查浏览器缓存或使用无痕模式重新访问。
7.4 混合内容(Mixed Content)错误
HTTPS页面中加载了HTTP资源(如图片、CSS、JS)时,浏览器会阻止或警告。解决方案:在Web应用中统一使用相对协议(//)或强制HTTPS引用资源;配置Content Security Policy(CSP)的 upgrade-insecure-requests 指令,强制所有子资源请求升级为HTTPS。
7.5 HTTP重定向不生效
检查点:是否在HTTP:80监听上正确开启了“监听转发”功能;转发目标是否选择了正确的HTTPS:443监听;是否有多条转发规则导致优先级冲突;域名解析是否已指向SLB的公网IP地址。
7.6 证书过期导致服务中断
预防措施:部署阿里云证书监控服务;配置自动化续签脚本;在日历或运维系统中设置证书到期提醒。应急处理:立即上传新证书并在监听中切换。
结语
阿里云SLB的HTTPS证书配置与转发规则管理,是构建安全、高可用Web架构的核心环节。从产品选型到证书上传,从监听配置到转发策略,每一步都影响着最终的业务体验与安全水位。本文系统地梳理了ALB、NLB、CLB三种产品的HTTPS能力差异,详细讲解了证书上传、HTTPS监听创建、转发规则配置、HTTP重定向等核心操作,并提供了CLI、OpenAPI及多种SDK的代码示例。同时针对证书更新、混合内容、TLS兼容性等常见问题给出了切实可行的解决方案。希望读者在阅读本文后,能够独立完成阿里云SLB的HTTPS配置工作,并在实际项目中灵活运用转发规则实现精细化的流量治理。
常见问题解答
问1:SLB上配置HTTPS后,后端ECS还需要安装SSL证书吗?
如果后端协议选择HTTP(端口80),则不需要,SLB完成SSL卸载后将明文HTTP请求转发给ECS,ECS无需处理加密。如果后端协议选择HTTPS(全链路加密),则后端ECS必须安装有效的SSL证书。
问2:ALB和CLB在HTTPS转发规则上有什么区别?
ALB支持基于域名和URL路径的精细化转发规则,可以将不同域名或路径的请求分发到不同的后端服务器组。CLB的七层HTTPS监听不支持域名和URL路径转发。
问3:如何实现HTTP自动跳转HTTPS?
在SLB实例上分别创建HTTP:80监听和HTTPS:443监听,然后在HTTP监听的高级配置中开启“监听转发”功能,将转发目标设置为HTTPS:443监听即可。
问4:SLB支持上传什么格式的SSL证书?
SLB仅支持PEM格式的证书文件。如果手中有PFX或DER格式的证书,需要使用OpenSSL工具进行格式转换。
问5:同一个SLB实例可以为多个域名配置不同的HTTPS证书吗?
可以。通过SNI(Server Name Indication)扩展,在同一个HTTPS监听上绑定多个证书,SLB根据客户端请求中的域名自动匹配证书。
问6:证书即将过期,如何在不中断服务的情况下更新?
先将新证书上传到数字证书管理服务,然后在SLB的HTTPS监听配置中,将“服务器证书”切换为新证书即可。ALB支持热更新,配置生效时间通常在30秒内,不会中断现有连接。



