全部產品
Search
文件中心

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

更新時間:Jun 19, 2024

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

前提條件

  • 您已建立ALB執行個體,並為該執行個體添加了HTTP監聽和監聽連接埠為443的HTTPS監聽。具體操作,請參見:

  • 您已建立ECS執行個體,用於發送HTTP請求,該ECS與已建立的ALB執行個體屬於同一個VPC。

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的重新導向。

更多操作

配置監聽轉寄規則