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

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

关键特性

  • 平滑切换:在重定向期间,用户在访问网站时,感知不到从HTTP到HTTPS的重定向过程,因为切换迅速且无缝,不会影响用户的正常浏览行为。

  • 降低负载:后端服务器不需要处理重定向逻辑,可以更专注于核心业务逻辑的处理,有助于提高后端服务器的处理效率。

应用场景

  • HTTPS安全改造:将现有网站或应用程序从HTTP改造为HTTPS,提升用户和服务器之间通信的安全性。

  • 域名更改/站点迁移:当网站迁移到新的域名时,使用重定向可以保持用户访问的连续性。

场景示例

企业在阿里云某地域购买了一个CLB实例,并配置了HTTP监听,为了提升传输数据的安全性,需要对网站进行HTTPS安全改造。在改造过程中,防止用户遇到服务中断或访问失败的情况,该企业选择使用CLB将HTTP访问重定向至HTTPS,从而平稳地将HTTP协议切换为HTTPS协议,保证业务安全性。

image

注意事项

  • CLB已经在全部地域开放了HTTP重定向功能,仅在英国(伦敦)地域支持配置重定向状态码,其他地域支持的重定向状态码默认为302。

  • 配置HTTP重定向至HTTPS时,HTTP监听和HTTPS监听在同一个CLB实例下。

前提条件

  • 您已创建后端服务器ECS01和ECS02实例,并在ECS01和ECS02中均部署了应用服务,本文所涉及的服务器已安装Alibaba Cloud Linux 3.2104 LTS 64位操作系统。请参见自定义购买实例

    ECS中测试服务的部署命令参考示例

    本文ECS01部署测试应用示例如下:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS01." > index.html

    本文ECS02部署测试应用示例如下:

    yum install -y nginx
    systemctl start nginx.service
    cd /usr/share/nginx/html/
    echo "Hello World ! This is ECS02." > index.html
  • 您已创建CLB实例,本文以公网CLB为例。请参见创建和管理CLB实例

  • 您已购买证书或者上传第三方证书到SSL证书服务并绑定域名。请参见SSL证书快速上手

操作步骤

步骤一:创建HTTPS监听

  1. 登录传统型负载均衡CLB控制台

  2. 在顶部菜单栏,选择目标CLB实例所属的地域。

  3. 实例管理页面,找到目标实例,然后在操作列单击监听配置向导

  4. 协议&监听配置向导,根据以下信息配置监听,然后单击下一步

    此处仅列出和本文强相关的配置项,其余参数保持默认值。其他参数的配置,请参见添加HTTPS监听

    • 选择监听协议HTTPS

    • 监听端口443

  5. SSL证书配置向导,选择已上传的服务器证书,或者在选择服务器证书时单击新建服务器证书上传一个服务器证书,其余参数保持默认配置,然后单击下一步

  6. 后端服务器配置向导,选择后端服务器。本文以默认服务器组为例。

    1. 选择默认服务器组,然后单击继续添加

    2. 我的服务器面板,选中ECS01和ECS02,然后单击下一步

    3. 配置端口和权重配置向导,配置ECS01和ECS02的权重,单击添加

    4. 配置ECS01和ECS02的端口,本文都设置为80然后单击下一步

  7. 健康检查配置向导,保持默认配置,单击下一步

  8. 配置审核配置向导,检查监听配置信息,然后单击提交,等待配置成功后,在弹出的对话框中单击知道了

步骤二:配置HTTP监听转发规则

  1. 监听页签,单击添加监听

  2. 协议&监听配置向导,根据以下信息配置监听,其余参数保持默认配置,然后单击下一步

    监听配置

    说明

    选择监听协议

    选择监听的协议类型。

    本文选择HTTP

    监听端口

    用来接收请求并向后端服务器进行请求转发的监听端口。

    本文设置为80

    高级配置

    单击修改展开高级配置。

    本文仅修改监听转发,其余参数保持默认配置。

    监听转发

    选择是否将HTTP监听的流量转发到HTTPS监听。

    本文选择开启监听转发,并选择目的监听步骤一:创建HTTPS监听创建的HTTPS监听。

    仅支持在英国(伦敦)地域配置自定义重定向状态码,您可以根据业务需求配置其他重定向状态码。image

  3. 配置审核页签,单击提交,等待配置成功后,单击知道了

监听转发开启后,该CLB实例所有来自HTTP:80的访问都会转发至HTTPS:443,并根据HTTPS:443的监听配置进行转发。

步骤三:配置域名解析

  1. 登录传统型负载均衡CLB控制台

  2. 在顶部菜单栏选择地域。

  3. 选择要进行域名解析的CLB实例,复制其对应的公网服务地址。

  4. 完成以下步骤来添加A解析记录。

    1. 登录域名解析控制台

    2. 域名解析页面单击添加域名

    3. 添加域名对话框中输入您的主机域名,然后单击确认

      重要

      您的主机域名需已完成TXT记录验证。

    4. 在目标域名的操作列单击解析设置

    5. 解析设置页面单击添加记录

    6. 添加记录面板配置以下信息完成A记录解析配置,然后单击确认

      配置

      说明

      记录类型

      在下拉列表中选择A

      主机记录

      您的域名的前缀。

      解析请求来源

      选择默认。

      记录值

      记录值为IP地址,即您复制的CLB实例的公网服务地址。

      TTL

      全称Time To Live,表示DNS记录在DNS服务器上的缓存时间,本文使用默认值。

步骤四:验证结果

以任意一台可以访问公网的终端为例,测试访问CLB的HTTP请求是否能够重定向至HTTPS。

  1. 打开终端的cmd窗口。

  2. 执行curl -v http://<CLB 域名>,如下图所示,收到状态码302,表示访问CLB的请求重定向至HTTPS。

    image

重定向状态码说明

CLB支持的重定向状态码及说明如下表所示。

状态码

说明

301

永久重定向,请求的资源已被永久移动至新的URL,建议客户端的请求都使用新的URL替代。

302

临时重定向,请求的资源只是暂时被移动,客户端应继续使用原有URL访问。

307

临时重定向,但不允许POST请求重定向到GET请求。

常见问题

为何HTTP监听中找不到开启监听转发的配置?

之前在CLB实例中已经创建的HTTP监听不能开启监听转发。您需要重新创建HTTP监听,才可以开启监听转发。

相关文档

CLB重定向功能通过在CLB实例上配置监听器规则来实现,而ALB在应用层面对HTTP请求进行重定向,具有更灵活的控制能力和更多的配置选项,支持基于路径的重定向或者基于请求头的重定向。请参考使用ALB将HTTP访问重定向至HTTPS