HTTPS是加密数据传输协议,安全性高。当您需要进行HTTPS安全改造时,您可以使用应用型负载均衡ALB将HTTP访问重定向至HTTPS,让用户在无感知的情况下将HTTP访问重定向至HTTPS。
功能简介
ALB提供HTTP到HTTPS的重定向功能。通过配置监听转发规则,将HTTP协议的请求重定向到HTTPS,从而确保数据传输加密,防止中间人攻击和数据泄露,帮助您轻松构建符合现代安全标准的网络架构。
关键特性
灵活配置:支持自定义重定向规则,可以基于路径、HTTP标头等参数设置特定的重定向策略,满足复杂应用场景的需求。
状态码设置:支持选择不同的HTTP状态码进行重定向,如301(永久重定向)或302(临时重定向)。
性能优化:将重定向逻辑转移到负载均衡层,后端服务器无需处理重定向逻辑,专注于核心业务处理,提升整体效率。
应用场景
HTTPS安全改造:将现有网站或应用程序从HTTP改造为HTTPS,提升用户和服务器之间通信的安全性。
域名更改/站点迁移:当网站迁移到新的域名时,使用重定向可以保持用户访问的连续性,避免流量损失。
基于HTTP标头重定向:根据HTTP标头信息(如语言、设备类型等),将用户请求重定向至不同的HTTPS应用,实现个性化服务。
场景示例
某企业在阿里云华东1(杭州)地域购买的ALB实例部署了业务并对外提供服务。企业希望在域名保持不变的情况下,将HTTP协议切换为HTTPS协议,以实现数据加密,并提升用户体验的流畅性与多样性。
前提条件
操作步骤
本文通过以下两种方式介绍通过ALB实现HTTP访问重定向至HTTPS,您可以按需配置:
HTTP端口所有请求重定向至HTTPS:无条件地将所有到达ALB的HTTP请求重定向到HTTPS,适用于强制要求所有访问都使用HTTPS的场景,例如全站启用HTTPS或统一安全策略。
基于HTTP标头重定向至HTTPS:基于HTTP请求头(如语言、设备类型等)进行条件判断,只有满足特定条件的请求才会被重定向。适用于需按条件区分跳转目标的场景,例如,可以根据用户语言偏好重定向到不同的语言版本网站,或者根据设备类型(手机、平板、PC)或浏览器版本,将请求重定向到移动端或桌面端的HTTPS版本。
HTTP端口所有请求均重定向至HTTPS
步骤一:配置HTTPS监听
在应用型负载均衡ALB控制台顶部菜单栏选择ALB实例所属地域。
在ALB实例页面,单击目标实例ID。
在监听页签,单击创建监听。
在负载均衡业务配置向导页面,完成以下配置,然后单击下一步。
此处仅列出和本文强相关的配置项,HTTPS监听其他参数配置可保持默认值或根据实际情况修改。
在配置监听配置向导,选择监听协议为HTTPS,监听端口为443,然后单击下一步。
在配置SSL证书配置向导,选择已创建好的服务器证书。然后单击下一步。
在选择服务器组配置向导,选择已创建好的服务器组,并查看后端服务器信息,然后单击下一步。
在配置审核配置向导页面,确认配置信息,单击提交。
步骤二:配置监听转发规则
在监听页签,找到已创建的HTTP监听,然后在操作列单击查看/编辑转发规则。
在转发规则页签,单击插入新规则。
在插入转发规则区域,配置下表参数,然后单击确定。
此处仅列出和本文强相关的配置项,转发规则其他参数配置可保持默认值或根据实际情况修改。
参数
说明
转发条件
选择路径并输入/*。
转发动作
选择重定向至。
协议:本示例选择HTTPS。
端口:输入您已创建的HTTPS协议监听端口。本文输入443。
状态码:本示例保持默认值301。
步骤三:结果验证
以任意一台可以访问公网的终端为例,测试访问ALB的HTTP请求是否能够重定向至HTTPS。
打开终端的命令行窗口。
执行
curl -v -L http://<自有域名>
。如下图所示,收到状态码301,表示访问ALB的请求重定向至HTTPS,应答服务器为ECS01。
重复执行命令,应答服务器变为ECS02。
基于HTTP标头重定向至HTTPS
本文以HTTP标头Accept-Language
是zh-CN,zh
的HTTP请求重定向至HTTPS为例。
步骤一:配置HTTPS监听
在应用型负载均衡ALB控制台顶部菜单栏选择ALB实例所属地域。
在ALB实例页面,单击目标实例ID。
在监听页签,单击创建监听。
在负载均衡业务配置向导页面,完成以下配置,然后单击下一步。
此处仅列出和本文强相关的配置项,HTTPS监听其他参数配置可保持默认值或根据实际情况修改。
在配置监听配置向导,选择监听协议为HTTPS,监听端口为443,然后单击下一步。
在配置SSL证书配置向导,选择已创建好的服务器证书。然后单击下一步。
在选择服务器组配置向导,选择已创建好的服务器组,并查看后端服务器信息,然后单击下一步。
在配置审核配置向导页面,确认配置信息,单击提交。
步骤二:配置监听转发规则
在监听页签,找到已创建的HTTP监听,然后在操作列单击查看/编辑转发规则。
在转发规则页签,单击插入新规则。
在插入转发规则区域,配置下表参数,然后单击确定。
此处仅列出和本文强相关的配置项,转发规则其他参数配置可保持默认值或根据实际情况修改。
参数
说明
转发条件
选择HTTP标头。
键是:本示例输入Accept-Language。
值是:本示例输入zh-CN,zh。
转发动作
选择重定向至。
协议:本示例选择HTTPS。
域名:输入您的自有域名。
端口:输入您已创建的HTTPS协议监听端口。本文输入443。
状态码:本示例选择302。
步骤三:结果验证
以任意一台可以访问公网的终端为例,测试访问ALB的HTTP请求是否能够重定向至HTTPS。
打开终端的命令行窗口。
执行
curl -v -L -H "Accept-Language: zh-CN,zh" http://<自有域名>
.如下图所示,收到状态码302,表示访问ALB的请求重定向至HTTPS,应答服务器为ECS01。
重复执行命令,应答服务器变为ECS02。
重定向状态码说明
ALB重定向状态码默认为301,您可以根据业务需求选择其他重定向状态码。ALB支持的重定向状态码及说明如下:
状态码 | 说明 |
301 | 永久移动。请求的资源已被永久移动至新的URL,建议客户端的请求都使用新的URL代替。 |
302 | 临时移动。请求的资源只是临时被移动,客户端应继续使用原有URL访问。 |
303 | 与302类似表示资源的临时移动,无论原始请求方法是什么,要求客户端在重定向后使用GET方法发起请求。 |
307 | 与302类似表示资源的临时移动,但客户端必须保持原请求方法(如POST请求重定向后仍为POST,不允许POST转为GET)。 |
308 | 与301类似表示资源的永久移动,客户端必须保持原请求方法(如POST请求重定向后仍为POST,不允许POST转为GET)。 |
关于状态码说明的更多信息请参见HTTP/1.1标准(RFC 7231)。
相关文档
若您的业务有更高的安全需求,您可以进一步了解ALB的以下功能:
配置全链路HTTPS访问实现加密通信:ALB提供全链路HTTPS加密功能,可以实现客户端到ALB、ALB到后端服务器之间的全链路加密通信,提升敏感业务的安全性。
使用ALB部署HTTPS业务(双向认证):ALB提供HTTPS双向认证功能,在客户端与服务端建立连接之前,双方需进行身份验证。仅在双方均成功通过认证后,方可建立安全通信通道进行数据传输,从而确保只有授权的客户端能够访问接入,有效降低中间人攻击和未授权访问等安全风险。
了解更多关于监听的转发条件以及转发动作,请参见配置监听转发规则。
通过ALB监听转发规则还可以实现以下场景需求:
使用ALB流量镜像功能实现仿真压测:通过ALB提供的流量镜像功能可以实现在线流量仿真,将在线流量镜像到测试环境的后端服务器,同时ALB自动丢弃镜像后端服务器返回的响应数据,保证镜像后端服务器的测试业务不会影响到线上业务。
使用ALB实现灰度发布:通过配置基于特定条件或不同服务器组流量权重的监听转发规则,将部分请求转发至新版本应用,逐步验证新版本稳定性,实现灰度发布。