通过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监听器。具体操作,请参见创建证书。
操作流程
步骤一:创建HTTPS监听器
- 进入弹性负载均衡列表页面。
- 在弹性负载均衡列表页面,单击需要设置重定向的负载均衡名称。
- 在该负载均衡界面的“监听器”页签,单击“添加监听器”,配置监听器。配置监听器参数参见表1。
图2 添加HTTPS监听器
表1 独享型负载均衡配置HTTPS监听器参数说明 参数
示例
说明
名称
listener-HTTPS
监听器名称。
前端协议
HTTPS
客户端与负载均衡监听器建立流量分发连接的协议。
前端端口
443
客户端与负载均衡监听器建立流量分发连接的端口。
SSL解析方式
单向认证
客户端到服务器端认证方式,本实践仅进行服务器端认证。
服务器证书
选择已创建的服务器证书
服务器证书用于SSL握手协商,具有服务器身份验证和加密传输双重功能。
开启SNI
暂不开启
HTTPS协议的负载均衡可以选择开启SNI,以满足您的多域名访问或关联多个服务器证书的需求。
访问控制
允许所有IP访问
支持通过白名单和黑名单对特性IP的访问请求进行控制。
获取客户端IP
默认开启
后端服务器可以获取到客户端的真实IP地址。
高级转发策略
开启
高级转发策略支持多样化的转发规则和转发动作,便于灵活地分流业务,合理地分配资源。
- 保持“高级配置”参数设置默认不变,单击“下一步:配置后端分配策略”。
- 选择“新创建”后端服务器组,其余参数保持默认不变,单击“下一步:添加后端服务器”。
- 选择将ECS_server添加到新创建的后端服务器组,开启健康检查并保持默认参数设置不变。
- 单击“下一步:确认配置”后,单击“提交”,完成HTTPS监听器的创建。
步骤二:添加重定向至HTTPS监听器
ELB支持在创建HTTP监听器时开启重定向并选择重定向至的HTTPS监听器,也支持在HTTP监听器创建完成后通过设置转发策略实现重定向的设置。
- 登录管理控制台。
- 在管理控制台左上角单击图标,选择区域和项目。
- 单击页面左上角的,选择“网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要设置重定向的负载均衡名称。
- 在该负载均衡界面的“监听器”页签,单击“添加监听器”,配置监听器。配置监听器参数参见表2。
图3 添加HTTP监听器
表2 独享型负载均衡配置HTTP监听器参数说明 参数
示例
说明
名称
listener-HTTP
监听器名称。
前端协议
HTTP
客户端与负载均衡监听器建立流量分发连接的协议。
前端端口
80
客户端与负载均衡监听器建立流量分发连接的端口。
重定向
开启
重定向用于将HTTP监听的流量转发到HTTPS监听,以实现HTTP协议强制跳转HTTPS。
重定向至
选择步骤一:创建HTTPS监听器创建的HTTPS监听器
选择重定向至的HTTPS监听器。
访问控制
允许所有IP访问
支持通过白名单和黑名单对特性IP的访问请求进行控制。
获取客户端IP
默认开启
后端服务器可以获取到客户端的真实IP地址。
高级转发策略
开启
高级转发策略支持多样化的转发规则和转发动作,便于灵活的分流业务,合理的分配资源。
- 保持“高级配置”参数设置默认不变,单击“下一步:确认配置”。
- 单击“提交”,完成HTTP监听器的创建和重定向设置。
- 登录管理控制台。
- 在管理控制台左上角单击图标,选择区域和项目。
- 单击页面左上角的,选择“网络 > 弹性负载均衡”。
- 在“负载均衡器”界面,单击需要设置重定向的负载均衡名称。
- 在该负载均衡界面的“监听器”页签,单击“添加监听器”,配置监听器。配置监听器参数参见表3。
图4 添加HTTP监听器
表3 独享型负载均衡配置HTTP监听器参数说明 参数
示例
说明
名称
listener-HTTP
监听器名称。
前端协议
HTTP
客户端与负载均衡监听器建立流量分发连接的协议。
前端端口
80
客户端与负载均衡监听器建立流量分发连接的端口。
重定向
暂不开启
重定向用于将HTTP监听的流量转发到HTTPS监听,以实现HTTP协议强制跳转HTTPS。
访问控制
允许所有IP访问
支持通过白名单和黑名单对特性IP的访问请求进行控制。
获取客户端IP
默认开启
后端服务器可以获取到客户端的真实IP地址。
高级转发策略
开启
高级转发策略支持多样化的转发规则和转发动作,便于灵活的分流业务,合理的分配资源。
- 保持“高级配置”参数设置默认不变,单击“下一步:配置后端分配策略”。
- 选择“新创建”后端服务器组,其余参数保持默认不变,单击“下一步:添加后端服务器”。
- 选择将ECS_server添加到新创建的后端服务器组,开启健康检查并保持默认参数设置不变。
- 单击“下一步:确认配置”后,单击“提交”,完成HTTP监听器的创建。
- 在配置结果页面,单击页面右侧的“去添加”,进入当前HTTP监听器的转发策略”页签。
- 单击“添加转发策略”添加重定向策略。
表4 重定向至HTTPS配置 参数
配置说明
动作
选择“重定向至监听器”。
监听器
选择需要重定向至的HTTPS监听器的名称。
- 转发策略添加完成后,单击“保存”。
图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监听器。