HTTPS是加密資料傳輸協議,安全性高。當企業進行HTTPS安全改造後,為了方便使用者訪問,可以使用ALB在使用者無感知的情況下將HTTP訪問重新導向至HTTPS。
前提條件
HTTP連接埠所有請求均重新導向至HTTPS
通過轉寄動作的配置,將後續訪問ALB的所有HTTP請求均重新導向至HTTPS的443連接埠。
- 登入應用型負載平衡ALB控制台。
在頂部功能表列,選擇ALB執行個體的所屬地區。
在執行個體頁面,單擊目標執行個體ID。
在監聽頁簽,找到已建立的HTTP監聽,然後在操作列單擊查看/編輯轉寄規則。
在轉寄規則頁簽,單擊插入新規則。
在插入轉寄規則地區,設定規則名稱並完成以下參數的配置,然後單擊確定。
條件
說明
轉寄條件
選擇路徑。本文輸入/*。
轉寄動作
選擇重新導向至。
協議:本文選擇HTTPS。
網域名稱:使用預設值${host}。
連接埠:輸入您已建立的HTTPS協議監聽連接埠。本文輸入443。
路徑:使用預設值${path}。
查詢:使用預設值${query}。
狀態代碼:本文選擇301。
在轉寄規則頁簽,將目標轉寄規則移動到第一優先順序,然後在右上方單擊儲存優先順序。
如目標轉寄規則已處於第一優先順序,則無需調整。
配置完成後,表示後續訪問ALB的所有HTTP請求都將轉寄至HTTPS的443連接埠。
遠程登入ECS執行個體,執行
curl -v http://<ALB網域名稱>
命令測試ECS訪問ALB的HTTP請求是否能夠重新導向至HTTPS。關於遠程登入ECS執行個體,請參見ECS遠端連線操作指南。如下圖所示,收到狀態代碼301,表示訪問ALB的請求重新導向至HTTPS。
基於HTTP標題重新導向至HTTPS
通過轉寄動作的配置,將後續訪問ALB網域名稱且Accept-Language是中文的請求重新導向至https://www.example.com。
- 登入應用型負載平衡ALB控制台。
在頂部功能表列,選擇ALB執行個體的所屬地區。
在執行個體頁面,單擊目標執行個體ID。
在監聽頁簽,找到已建立的HTTP監聽,然後在操作列單擊查看/編輯轉寄規則。
在轉寄規則頁簽,單擊插入新規則。
在插入轉寄規則地區,設定規則名稱並完成以下參數的配置,然後單擊確定。
條件
說明
轉寄條件
選擇HTTP標題。
鍵是:本文輸入Accept-Language。
值是:本文輸入zh-CN,zh。
轉寄動作
選擇重新導向至。
協議:本文選擇HTTPS。
網域名稱:本文輸入www.example.com。
連接埠:輸入您已建立的HTTPS協議監聽連接埠。本文輸入443。
路徑:使用預設值${path}。
查詢:使用預設值${query}。
狀態代碼:本文選擇302。
在轉寄規則頁簽,將目標轉寄規則移動到第一優先順序,然後在右上方單擊儲存優先順序。
如目標轉寄規則已處於第一優先順序,則無需調整。
配置完成後,表示後續訪問ALB網域名稱且Accept-Language是中文的請求都會重新導向至https://www.example.com。
遠程登入ECS執行個體,執行
curl -H "Accept-Language: zh-CN,zh" <ALB執行個體網域名稱>
命令測試ECS訪問ALB的HTTP請求是否能夠重新導向至https://www.example.com。如下圖所示,收到狀態代碼302,表示訪問ALB的請求重新導向至https://www.example.com。
重新導向狀態代碼說明
ALB重新導向狀態代碼預設為301,您可以根據業務需求選擇其他重新導向狀態代碼。ALB支援的重新導向狀態代碼及說明如下:
狀態代碼 | 說明 |
301 | 永久移動。請求的資源已被永久移動至新的URL,建議用戶端的請求都使用新的URL代替。 |
302 | 臨時移動。請求的資源只是臨時被移動,用戶端應繼續使用原有URL訪問。 |
303 | 與302類似表示資源的臨時移動,但POST請求會被重新導向至GET請求。 |
307 | 與302類似表示資源的臨時移動,但不允許POST到GET的重新導向。 |
308 | 與301類似表示資源的永久移動,但不允許POST到GET的重新導向。 |