使用ALB将HTTP访问重定向至HTTPS

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 http://<ALB域名>命令测试ECS访问ALB的HTTP请求是否能够重定向至HTTPS。关于远程登录ECS实例,请参见ECS远程连接操作指南

    如下图所示,收到状态码301,表示访问ALB的请求重定向至HTTPS。基于路径转发结果验证

基于HTTP标头重定向至HTTPS

通过转发动作的配置,将后续访问ALB域名且Accept-Language是中文的请求重定向至https://www.example.com。

  1. 登录应用型负载均衡ALB控制台
  2. 在顶部菜单栏,选择ALB实例的所属地域。

  3. 实例页面,单击目标实例ID。

  4. 监听页签,找到已创建的HTTP监听,然后在操作列单击查看/编辑转发规则

  5. 转发规则页签,单击插入新规则

  6. 插入转发规则区域,设置规则名称并完成以下参数的配置,然后单击确定

    条件

    说明

    转发条件

    选择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 "Accept-Language: zh-CN,zh" <ALB实例域名>命令测试ECS访问ALB的HTTP请求是否能够重定向至https://www.example.com。

    如下图所示,收到状态码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的重定向。

更多操作

配置监听转发规则