HTTPS是加密数据传输协议,安全性高。当企业进行HTTPS安全改造后,为了方便用户访问,可以使用ALB在用户无感知的情况下将HTTP访问重定向至HTTPS。
前提条件
- 您已创建ALB实例,并为该实例添加了HTTP监听和监听端口为443的HTTPS监听。具体操作,请参见:
- 您已创建ECS实例,用于发送HTTP请求,该ECS与已创建的ALB实例属于同一个VPC。
HTTP端口所有请求均重定向至HTTPS
通过转发动作的配置,将后续访问ALB的所有HTTP请求均重定向至HTTPS的443端口。
- 登录应用型负载均衡ALB控制台。
- 在顶部菜单栏,选择ALB实例的所属地域。
- 在实例页面,单击目标实例ID。
- 在监听页签,找到已创建的HTTP监听,然后在操作列单击查看/编辑转发规则。
- 在转发规则页签,单击插入新规则。
- 在插入转发规则区域,设置规则名称并完成以下参数的配置,然后单击确定。

参数 |
说明 |
如果(条件全部匹配) |
选择路径。本文输入/*。
|
那么 |
选择重定向至。
- 协议:本文选择HTTPS。
- 域名:使用默认值${host}。
- 端口:输入您已创建的HTTPS协议监听端口。本文输入443。
- 路径:使用默认值${path}。
- 查询:使用默认值${query}。
- 状态码:本文选择301。
|
- 在转发规则页签,将目标转发规则移动到第一优先级,然后在右上角单击保存优先级。
如目标转发规则已处于第一优先级,则无需调整。
配置完成后,表示后续访问ALB的所有HTTP请求都将转发至HTTPS的443端口。
- 远程登录ECS实例,执行curl -v命令测试ECS访问ALB的HTTP请求是否能够重定向至HTTPS。关于远程登录ECS实例,请参见ECS远程连接操作指南。
curl -v http://<ALB域名>
如下图所示,收到状态码301,表示访问
ALB的请求重定向至HTTPS。

基于HTTP标头重定向至HTTPS
通过转发动作的配置,将后续访问ALB域名且Accept-Language是中文的请求重定向至https://www.example.com。
- 登录应用型负载均衡ALB控制台。
- 在顶部菜单栏,选择ALB实例的所属地域。
- 在实例页面,单击目标实例ID。
- 在监听页签,找到已创建的HTTP监听,然后在操作列单击查看/编辑转发规则。
- 在转发规则页签,单击插入新规则。
- 在插入转发规则区域,设置规则名称并完成以下参数的配置,然后单击确定。

参数 |
说明 |
如果(条件全部匹配) |
选择HTTP标头。
- 键是:本文输入Accept-Language。
- 值是:本文输入zh-CN,zh。
|
那么 |
选择重定向至。
- 协议:本文选择HTTPS。
- 域名:本文输入www.example.com。
- 端口:输入您已创建的HTTPS协议监听端口。本文输入443。
- 路径:使用默认值${path}。
- 查询:使用默认值${query}。
- 状态码:本文选择302。
|
- 在转发规则页签,将目标转发规则移动到第一优先级,然后在右上角单击保存优先级。
如目标转发规则已处于第一优先级,则无需调整。
配置完成后,表示后续访问ALB域名且Accept-Language是中文的请求都会重定向至https://www.example.com。
- 远程登录ECS实例,执行curl -H命令测试ECS访问ALB的HTTP请求是否能够重定向至https://www.example.com。
curl -H "Accept-Language: zh-CN,zh" <ALB实例域名>
如下图所示,收到状态码302,表示访问
ALB的请求重定向至https://www.example.com。
