HTTPS是加密數據傳輸協議,安全性高。當企業進行HTTPS安全改造后,為了方便用戶訪問,可以使用CLB在用戶無感知的情況下將HTTP訪問重定向至HTTPS。本文為您介紹如何使用CLB將HTTP訪問重定向至HTTPS。
關鍵特性
平滑切換:在重定向期間,用戶在訪問網站時,感知不到從HTTP到HTTPS的重定向過程,因為切換迅速且無縫,不會影響用戶的正常瀏覽行為。
降低負載:后端服務器不需要處理重定向邏輯,可以更專注于核心業務邏輯的處理,有助于提高后端服務器的處理效率。
應用場景
HTTPS安全改造:將現有網站或應用程序從HTTP改造為HTTPS,提升用戶和服務器之間通信的安全性。
域名更改/站點遷移:當網站遷移到新的域名時,使用重定向可以保持用戶訪問的連續性。
場景示例
企業在阿里云某地域購買了一個CLB實例,并配置了HTTP監聽,為了提升傳輸數據的安全性,需要對網站進行HTTPS安全改造。在改造過程中,防止用戶遇到服務中斷或訪問失敗的情況,該企業選擇使用CLB將HTTP訪問重定向至HTTPS,從而平穩地將HTTP協議切換為HTTPS協議,保證業務安全性。
注意事項
CLB已經在全部地域開放了HTTP重定向功能,僅在英國(倫敦)地域支持配置重定向狀態碼,其他地域支持的重定向狀態碼默認為302。
配置HTTP重定向至HTTPS時,HTTP監聽和HTTPS監聽在同一個CLB實例下。
前提條件
您已創建后端服務器ECS01和ECS02實例,并在ECS01和ECS02中均部署了應用服務,本文所涉及的服務器已安裝Alibaba Cloud Linux 3.2104 LTS 64位操作系統。請參見自定義購買實例。
本文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監聽
在頂部菜單欄,選擇目標CLB實例所屬的地域。
在實例管理頁面,找到目標實例,然后在操作列單擊監聽配置向導。
在協議&監聽配置向導,根據以下信息配置監聽,然后單擊下一步。
此處僅列出和本文強相關的配置項,其余參數保持默認值。其他參數的配置,請參見添加HTTPS監聽。
選擇監聽協議:HTTPS。
監聽端口:443。
在SSL證書配置向導,選擇已上傳的服務器證書,或者在選擇服務器證書時單擊新建服務器證書上傳一個服務器證書,其余參數保持默認配置,然后單擊下一步。
在后端服務器配置向導,選擇后端服務器。本文以默認服務器組為例。
選擇默認服務器組,然后單擊繼續添加。
在我的服務器面板,選中ECS01和ECS02,然后單擊下一步。
在配置端口和權重配置向導,配置ECS01和ECS02的權重,單擊添加。
配置ECS01和ECS02的端口,本文都設置為80,然后單擊下一步。
在健康檢查配置向導,保持默認配置,單擊下一步。
在配置審核配置向導,檢查監聽配置信息,然后單擊提交,等待配置成功后,在彈出的對話框中單擊知道了。
步驟二:配置HTTP監聽轉發規則
在監聽頁簽,單擊添加監聽。
在協議&監聽配置向導,根據以下信息配置監聽,其余參數保持默認配置,然后單擊下一步。
監聽配置
說明
選擇監聽協議
選擇監聽的協議類型。
本文選擇HTTP。
監聽端口
用來接收請求并向后端服務器進行請求轉發的監聽端口。
本文設置為80。
高級配置
單擊修改展開高級配置。
本文僅修改監聽轉發,其余參數保持默認配置。
監聽轉發
選擇是否將HTTP監聽的流量轉發到HTTPS監聽。
本文選擇開啟監聽轉發,并選擇目的監聽為步驟一:創建HTTPS監聽創建的HTTPS監聽。
僅支持在英國(倫敦)地域配置自定義重定向狀態碼,您可以根據業務需求配置其他重定向狀態碼。
在配置審核頁簽,單擊提交,等待配置成功后,單擊知道了。
監聽轉發開啟后,該CLB實例所有來自HTTP:80的訪問都會轉發至HTTPS:443,并根據HTTPS:443的監聽配置進行轉發。
步驟三:配置域名解析
在頂部菜單欄選擇地域。
選擇要進行域名解析的CLB實例,復制其對應的公網服務地址。
完成以下步驟來添加A解析記錄。
登錄域名解析控制臺。
在域名解析頁面單擊添加域名。
在添加域名對話框中輸入您的主機域名,然后單擊確認。
重要您的主機域名需已完成TXT記錄驗證。
在目標域名的操作列單擊解析設置。
在解析設置頁面單擊添加記錄。
在添加記錄面板配置以下信息完成A記錄解析配置,然后單擊確認。
配置
說明
記錄類型
在下拉列表中選擇A。
主機記錄
您的域名的前綴。
解析請求來源
選擇默認。
記錄值
記錄值為IP地址,即您復制的CLB實例的公網服務地址。
TTL
全稱Time To Live,表示DNS記錄在DNS服務器上的緩存時間,本文使用默認值。
步驟四:驗證結果
以任意一臺可以訪問公網的終端為例,測試訪問CLB的HTTP請求是否能夠重定向至HTTPS。
打開終端的cmd窗口。
執行
curl -v http://<CLB 域名>
,如下圖所示,收到狀態碼302,表示訪問CLB的請求重定向至HTTPS。
重定向狀態碼說明
CLB支持的重定向狀態碼及說明如下表所示。
狀態碼 | 說明 |
301 | 永久重定向,請求的資源已被永久移動至新的URL,建議客戶端的請求都使用新的URL替代。 |
302 | 臨時重定向,請求的資源只是暫時被移動,客戶端應繼續使用原有URL訪問。 |
307 | 臨時重定向,但不允許POST請求重定向到GET請求。 |
常見問題
為何HTTP監聽中找不到開啟監聽轉發的配置?
之前在CLB實例中已經創建的HTTP監聽不能開啟監聽轉發。您需要重新創建HTTP監聽,才可以開啟監聽轉發。
相關文檔
CLB重定向功能通過在CLB實例上配置監聽器規則來實現,而ALB在應用層面對HTTP請求進行重定向,具有更靈活的控制能力和更多的配置選項,支持基于路徑的重定向或者基于請求頭的重定向。請參考使用ALB將HTTP訪問重定向至HTTPS。