全部產品
Search
文件中心

Server Load Balancer:使用CLB將HTTP訪問重新導向至HTTPS

更新時間:Aug 17, 2024

HTTPS是加密資料傳輸協議,安全性高。當企業進行HTTPS安全改造後,為了方便使用者訪問,可以使用CLB在使用者無感知的情況下將HTTP訪問重新導向至HTTPS。本文為您介紹如何使用CLB將HTTP訪問重新導向至HTTPS。

關鍵特性

  • 平滑切換:在重新導向期間,使用者在訪問網站時,感知不到從HTTP到HTTPS的重新導向過程,因為切換迅速且無縫,不會影響使用者的正常瀏覽行為。

  • 降低負載:後端伺服器不需要處理重新導向邏輯,可以更專註於核心商務邏輯的處理,有助於提高後端伺服器的處理效率。

應用情境

  • HTTPS安全改造:將現有網站或應用程式從HTTP改造為HTTPS,提升使用者和伺服器之間通訊的安全性。

  • 網域名稱更改/網站遷移:當網站遷移到新的網域名稱時,使用重新導向可以保持使用者訪問的連續性。

情境樣本

企業在阿里雲某地區購買了一個CLB執行個體,並配置了HTTP監聽,為了提升傳輸資料的安全性,需要對網站進行HTTPS安全改造。在改造過程中,防止使用者遇到服務中斷或訪問失敗的情況,該企業選擇使用CLB將HTTP訪問重新導向至HTTPS,從而平穩地將HTTP協議切換為HTTPS協議,保證業務安全性。

注意事項

  • CLB已經在全部地區開放了HTTP重新導向功能。

  • 配置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監聽。

  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支援的重新導向狀態代碼及說明如下表所示。

狀態代碼

說明

302

臨時重新導向,請求的資源只是暫時被移動,用戶端應繼續使用原有URL訪問。

常見問題

為何HTTP監聽中找不到開啟監聽轉寄的配置?

之前在CLB執行個體中已經建立的HTTP監聽不能開啟監聽轉寄。您需要重新建立HTTP監聽,才可以開啟監聽轉寄。

相關文檔

CLB重新導向功能通過在CLB執行個體上配置監聽器規則來實現,而ALB在應用程式層面對HTTP請求進行重新導向,具有更靈活的控制能力和更多的配置選項,支援基於路徑的重新導向或者基於要求標頭的重新導向。請參考使用ALB將HTTP訪問重新導向至HTTPS