文档首页/ 弹性负载均衡 ELB/ 最佳实践/ 通过ELB将HTTP请求重定向至HTTPS以提升业务安全性
更新时间:2024-11-12 GMT+08:00

通过ELB将HTTP请求重定向至HTTPS以提升业务安全性

应用场景

HTTPS是加密数据传输协议,安全性高,如果您需要保证业务建立安全连接,可以通过负载均衡的HTTP重定向功能,将客户端的HTTP访问重定向至HTTPS访问ELB。

  • 因为HTTP标准协议只支持GET和HEAD方法的重定向,所以设置了HTTP重定向至HTTPS后,POST和其他方法会被改为GET方法,这是客户端浏览器的行为,而非ELB修改的。如果您需要实现除GET和HEAD方法以外的访问方式,建议直接使用HTTPS方式进行访问。
  • HTTP重定向至HTTPS是指所有的HTTP请求都将转给HTTPS监听器处理为HTTPS请求,但HTTPS请求是通过HTTP被发送给后端服务器的。
  • HTTP监听器重定向至HTTPS监听器,HTTPS监听器所关联的后端服务器上不能再安装证书,否则会引起HTTPS请求不生效。

前提条件

  • 您已创建ELB实例,本实践将以独享型ELB为例。具体操作,请参见创建独享型负载均衡器
  • 您已创建两台ECS实例,ECS与已创建的ELB实例属于同一个VPC。第一台ECS_client用作客户端发送HTTP请求,第二台ECS_server用作服务器端来处理请求。具体操作,请参见购买云服务器
  • 您已在ELB的证书管理控制台创建服务器证书用于创建HTTPS监听器。具体操作,请参见创建证书

操作流程

图1 配置HTTPS重定向至HTTPS监听器操作流程

步骤一:创建HTTPS监听器

  1. 进入弹性负载均衡列表页面
  2. 在弹性负载均衡列表页面,单击需要设置重定向的负载均衡名称。
  3. 在该负载均衡界面的“监听器”页签,单击“添加监听器”,配置监听器。配置监听器参数参见表1
    图2 添加HTTPS监听器
    表1 独享型负载均衡配置HTTPS监听器参数说明

    参数

    示例

    说明

    名称

    listener-HTTPS

    监听器名称。

    前端协议

    HTTPS

    客户端与负载均衡监听器建立流量分发连接的协议。

    前端端口

    443

    客户端与负载均衡监听器建立流量分发连接的端口。

    SSL解析方式

    单向认证

    客户端到服务器端认证方式,本实践仅进行服务器端认证。

    服务器证书

    选择已创建的服务器证书

    服务器证书用于SSL握手协商,具有服务器身份验证和加密传输双重功能。

    开启SNI

    暂不开启

    HTTPS协议的负载均衡可以选择开启SNI,以满足您的多域名访问或关联多个服务器证书的需求。

    访问控制

    允许所有IP访问

    支持通过白名单和黑名单对特性IP的访问请求进行控制。

    获取客户端IP

    默认开启

    后端服务器可以获取到客户端的真实IP地址。

    高级转发策略

    开启

    高级转发策略支持多样化的转发规则和转发动作,便于灵活地分流业务,合理地分配资源。

  4. 保持“高级配置”参数设置默认不变,单击“下一步:配置后端分配策略”。
  5. 选择“新创建”后端服务器组,其余参数保持默认不变,单击“下一步:添加后端服务器”。
  6. 选择将ECS_server添加到新创建的后端服务器组,开启健康检查并保持默认参数设置不变。
  7. 单击“下一步:确认配置”后,单击“提交”,完成HTTPS监听器的创建。

步骤二:添加重定向至HTTPS监听器

ELB支持在创建HTTP监听器时开启重定向并选择重定向至的HTTPS监听器,也支持在HTTP监听器创建完成后通过设置转发策略实现重定向的设置。

  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 单击页面左上角的,选择“网络 > 弹性负载均衡”。
  4. 在“负载均衡器”界面,单击需要设置重定向的负载均衡名称。
  5. 在该负载均衡界面的“监听器”页签,单击“添加监听器”,配置监听器。配置监听器参数参见表2
    图3 添加HTTP监听器
    表2 独享型负载均衡配置HTTP监听器参数说明

    参数

    示例

    说明

    名称

    listener-HTTP

    监听器名称。

    前端协议

    HTTP

    客户端与负载均衡监听器建立流量分发连接的协议。

    前端端口

    80

    客户端与负载均衡监听器建立流量分发连接的端口。

    重定向

    开启

    重定向用于将HTTP监听的流量转发到HTTPS监听,以实现HTTP协议强制跳转HTTPS。

    重定向至

    选择步骤一:创建HTTPS监听器创建的HTTPS监听器

    选择重定向至的HTTPS监听器。

    访问控制

    允许所有IP访问

    支持通过白名单和黑名单对特性IP的访问请求进行控制。

    获取客户端IP

    默认开启

    后端服务器可以获取到客户端的真实IP地址。

    高级转发策略

    开启

    高级转发策略支持多样化的转发规则和转发动作,便于灵活的分流业务,合理的分配资源。

  6. 保持“高级配置”参数设置默认不变,单击“下一步:确认配置”。
  7. 单击“提交”,完成HTTP监听器的创建和重定向设置。
  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 单击页面左上角的,选择“网络 > 弹性负载均衡”。
  4. 在“负载均衡器”界面,单击需要设置重定向的负载均衡名称。
  5. 在该负载均衡界面的“监听器”页签,单击“添加监听器”,配置监听器。配置监听器参数参见表3
    图4 添加HTTP监听器
    表3 独享型负载均衡配置HTTP监听器参数说明

    参数

    示例

    说明

    名称

    listener-HTTP

    监听器名称。

    前端协议

    HTTP

    客户端与负载均衡监听器建立流量分发连接的协议。

    前端端口

    80

    客户端与负载均衡监听器建立流量分发连接的端口。

    重定向

    暂不开启

    重定向用于将HTTP监听的流量转发到HTTPS监听,以实现HTTP协议强制跳转HTTPS。

    访问控制

    允许所有IP访问

    支持通过白名单和黑名单对特性IP的访问请求进行控制。

    获取客户端IP

    默认开启

    后端服务器可以获取到客户端的真实IP地址。

    高级转发策略

    开启

    高级转发策略支持多样化的转发规则和转发动作,便于灵活的分流业务,合理的分配资源。

  6. 保持“高级配置”参数设置默认不变,单击“下一步:配置后端分配策略”。
  7. 选择“新创建”后端服务器组,其余参数保持默认不变,单击“下一步:添加后端服务器”。
  8. 选择将ECS_server添加到新创建的后端服务器组,开启健康检查并保持默认参数设置不变。
  9. 单击“下一步:确认配置”后,单击“提交”,完成HTTP监听器的创建。
  10. 在配置结果页面,单击页面右侧的“去添加”,进入当前HTTP监听器的转发策略”页签。
  11. 单击“添加转发策略”添加重定向策略。
    表4 重定向至HTTPS配置

    参数

    配置说明

    动作

    选择“重定向至监听器”。

    监听器

    选择需要重定向至的HTTPS监听器的名称。

  12. 转发策略添加完成后,单击“保存”。
    图5 添加重定向至HTTPS监听器
  • HTTP监听器被重定向,除访问控制以外原有监听器配置会失效。
  • HTTP监听器被重定向后,会返回301返回码。

步骤三:验证重定向至HTTPS

远程登录ECS_client实例,执行curl -H "Accept-Language: zh-CN,zh" "http://ELB的私网IP地址:80" 命令测试ECS_client实例访问ELB的HTTP请求是否能够重定向成功。

如下图所示,如果收到状态码301,表示访问ELB的HTTP请求被重定向至HTTPS监听器。

图6 验证重定向至HTTPS监听器