HTTPS是加密数据传输协议,安全性高。当企业进行HTTPS安全改造后,为了方便用户访问,可以使用ALB在用户无感知的情况下将HTTP访问重定向至HTTPS。

前提条件

HTTP端口所有请求均重定向至HTTPS

通过转发动作的配置,将后续访问ALB的所有HTTP请求均重定向至HTTPS的443端口。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏,选择ALB实例的所属地域。
  3. 实例页面,单击目标实例ID。
  4. 监听页签,找到已创建的HTTP监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,单击插入新规则
  6. 插入转发规则区域,设置规则名称并完成以下参数的配置,然后单击确定
    基于路径重定向
    参数 说明
    如果(条件全部匹配) 选择路径。本文输入/*
    那么 选择重定向至
    • 协议:本文选择HTTPS
    • 域名:使用默认值${host}
    • 端口:输入您已创建的HTTPS协议监听端口。本文输入443
    • 路径:使用默认值${path}
    • 查询:使用默认值${query}
    • 状态码:本文选择301
  7. 转发规则页签,将目标转发规则移动到第一优先级,然后在右上角单击保存优先级
    如目标转发规则已处于第一优先级,则无需调整。
    配置完成后,表示后续访问ALB的所有HTTP请求都将转发至HTTPS的443端口。
  8. 远程登录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。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏,选择ALB实例的所属地域。
  3. 实例页面,单击目标实例ID。
  4. 监听页签,找到已创建的HTTP监听,然后在操作列单击查看/编辑转发规则
  5. 转发规则页签,单击插入新规则
  6. 插入转发规则区域,设置规则名称并完成以下参数的配置,然后单击确定
    http-https
    参数 说明
    如果(条件全部匹配) 选择HTTP标头
    • 键是:本文输入Accept-Language
    • 值是:本文输入zh-CN,zh
    那么 选择重定向至
    • 协议:本文选择HTTPS
    • 域名:本文输入www.example.com
    • 端口:输入您已创建的HTTPS协议监听端口。本文输入443
    • 路径:使用默认值${path}
    • 查询:使用默认值${query}
    • 状态码:本文选择302
  7. 转发规则页签,将目标转发规则移动到第一优先级,然后在右上角单击保存优先级
    如目标转发规则已处于第一优先级,则无需调整。
    配置完成后,表示后续访问ALB域名且Accept-Language是中文的请求都会重定向至https://www.example.com。
  8. 远程登录ECS实例,执行curl -H命令测试ECS访问ALB的HTTP请求是否能够重定向至https://www.example.com。
    curl -H "Accept-Language: zh-CN,zh" <ALB实例域名>
    如下图所示,收到状态码302,表示访问ALB的请求重定向至https://www.example.com。基于HTTP标头重定向

重定向状态码说明

ALB重定向状态码默认为301,您可以根据业务需求选择其他重定向状态码。ALB支持的重定向状态码及说明如下:
状态码 说明
301 永久移动。请求的资源已被永久移动至新的URL,建议客户端的请求都使用新的URL代替。
302 临时移动。请求的资源只是临时被移动,客户端应继续使用原有URL访问。
303 与302类似表示资源的临时移动,但POST请求会被重定向至GET请求。
307 与302类似表示资源的临时移动,但不允许POST到GET的重定向。
308 与301类似表示资源的永久移动,但不允许POST到GET的重定向。

更多操作

管理监听转发规则