如果您的應用需要進行加密傳輸,您可以建立使用加密串連的HTTPS監聽來轉寄來自HTTPS協議的請求。此功能支援在ALB執行個體與啟動SSL或TLS會話的用戶端之間進行流量加密。
前提條件
您已建立ALB執行個體。
您已經在ALB執行個體上部署了TLS安全性原則和至少一個SSL伺服器憑證。
您已建立可用的後端伺服器組。
操作指引
本文為您提供以下兩種方式建立HTTPS監聽,您可以根據需求選擇其中一種方式建立HTTPS監聽。
建立HTTPS監聽:您可以根據業務定製進階配置功能,如雙向認證功能。
快速建立HTTPS監聽:您可以快速建立監聽,只需配置監聽協議、監聽連接埠、伺服器憑證、TLS安全性原則和轉寄的後端伺服器組。
建立HTTPS監聽
步驟一:配置監聽
在頂部功能表列,選擇執行個體所屬的地區。
選擇以下一種方法,開啟監聽設定精靈。
在執行個體頁面,找到目標執行個體,在操作列單擊建立監聽。
在執行個體頁面,單擊目標執行個體ID。在監聽頁簽,單擊建立監聽。
在配置監聽設定精靈,完成以下配置,然後單擊下一步。
監聽配置
說明
選擇監聽協議
選擇監聽的協議類型。
本樣本選擇HTTPS。
監聽連接埠
輸入用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠,本樣本輸入443。通常HTTP協議使用80連接埠,HTTPS協議使用443連接埠。
連接埠範圍為1~65535。
說明同一個ALB執行個體內,相同協議的監聽連接埠不能重複,且HTTP和HTTPS監聽連接埠互不重複。
監聽名稱
輸入監聽名稱。
標籤
設定標籤鍵和標籤值。
設定標籤後,您可以在監聽頁簽使用標籤篩選監聽。
高級配置
單擊修改展開進階配置。
啟用HTTP2.0
選擇是否開啟HTTP 2.0。
串連空閑逾時時間
指定串連空閑逾時時間,取值範圍為1~600秒,預設為15秒。如需提升配額,請前往配額中心申請。
在逾時時間內一直沒有訪問請求,負載平衡會暫時中斷當前串連,直到下一次請求來臨時重建立立新的串連。
串連請求逾時時間
指定請求逾時時間,取值範圍為1~600秒,預設為60秒。如需提升配額,請前往配額中心申請。
在逾時時間內後端伺服器一直沒有響應,負載平衡將放棄等待,給用戶端返回HTTP 504錯誤碼。
數據壓縮
開啟該配置會對特定檔案類型進行壓縮,關閉該配置則不會對任何檔案類型進行壓縮。
目前Brotli支援壓縮所有類型。
Gzip支援壓縮的類型包括:
text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss+xml、application/atom+xml、application/xml和application/json。
說明僅當響應內容的
Content-Length值超過1024位元組時,才會觸發資料壓縮。當用戶端請求同時支援Brotli和Gzip壓縮演算法時,ALB會優先選擇更高效的壓縮演算法Brotli。
當用戶端僅支援Gzip壓縮演算法時,若檔案類型為Gzip不支援的類型,則ALB不會進行壓縮。
尋找真實客戶端源IP
允許ALB從X-Forwarded-For頭欄位中尋找真實用戶端IP開關。開啟後,您需要設定可信IP列表。
可信IP列表設定為
0.0.0.0/0:表示擷取X-Forwarded-For請求標題中最左邊的地址,即真實用戶端源IP。可信IP列表設定為
proxy1 IP;proxy2 IP;..:表示從右往左擷取第一個不在這個列表裡面的值,並將其作為真實用戶端源IP。
使用情境說明:
當X-Forwarded-For請求標題中包含多個IP地址時,例如
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …,最左邊的地址是真實用戶端IP,如果您需要使用ALB轉寄規則中基於SourceIp匹配和QPS(基於客戶端源IP限速)功能,您需要開啟尋找真實客戶端源IP開關,以便ALB從X-Forwarded-For頭欄位中尋找真實用戶端源IP。更多資訊,請參見添加轉寄規則。說明僅標準版、WAF增強版ALB執行個體支援開啟尋找真實用戶端源IP,基礎版ALB執行個體不支援。
附加HTTP頭欄位
選擇您要添加的自訂HTTP頭欄位:
選擇是否開啟
X-Forwarded-For頭欄位來擷取來訪者用戶端IP地址。開啟
X-Forwarded-For頭欄位:ALB將請求發送至後端伺服器之前附加、刪除請求中的
X-Forwarded-For頭欄位。附加(預設)
預設情況下,ALB會將用戶端IP地址儲存到X-Forwarded-For頭欄位中,並將該頭欄位資訊發送至後端伺服器。如果原始請求中未包含X-Forwarded-For頭欄位,ALB會建立以用戶端IP地址為請求值的X-Forwarded-For頭欄位。否則,ALB會將用戶端IP地址附加到現有X-Forwarded-For頭欄位中,然後將頭欄位發送至後端伺服器。X-Forwarded-For 要求標頭欄位可能包含多個以逗號分隔的 IP 位址。
刪除
ALB將請求發送至後端伺服器之前,會刪除請求中的
X-Forwarded-For頭欄位。
關閉
X-Forwarded-For頭欄位:ALB將請求發送至後端伺服器之前,不會對請求中的
X-Forwarded-For頭欄位進行任何修改。
欄位格式:
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …ALB如何擷取用戶端真實IP教程,請參見後端伺服器通過ALB擷取用戶端真實IP。
添加
SLB-ID頭欄位擷取Server Load Balancer執行個體的ID。添加
X-Forwarded-Proto頭欄位擷取執行個體的監聽協議。添加
X-Forwarded-Port頭欄位擷取Server Load Balancer執行個體的監聽連接埠。添加
X-Forwarded-Host頭欄位擷取訪問Server Load Balancer執行個體用戶端的網域名稱。添加
X-Forwarded-Client-srcport頭欄位擷取訪問Server Load Balancer執行個體用戶端的連接埠。添加
X-Forwarded-Clientcert-subjectdn頭欄位擷取訪問Server Load Balancer執行個體用戶端認證的所有者資訊。添加
X-Forwarded-Clientcert-issuerdn頭欄位擷取訪問Server Load Balancer執行個體用戶端認證的所發行者資訊。添加
X-Forwarded-Clientcert-fingerprint頭欄位擷取訪問Server Load Balancer執行個體用戶端認證的指紋取值。添加
X-Forwarded-Clientcert-clientverify頭欄位擷取訪問Server Load Balancer執行個體用戶端認證的校正結果。
說明建議您的後端伺服器在擷取HTTP頭欄位時,遵循HTTP協議規範,不區分HTTP頭欄位索引值的大小寫。
ALB向後端伺服器傳遞X-Forwarded-For附加頭欄位的首字母始終保持大寫。
針對其他附加HTTP頭欄位,如果用戶端請求中攜帶某個頭欄位,ALB會按照用戶端請求中頭欄位格式向後端伺服器傳遞。否則,ALB會根據上表所示附加頭欄位的欄位名格式向後端伺服器傳遞。
開啟X-Forwarded-Clientcert-subjectdn、X-Forwarded-Clientcert-issuerdn、X-Forwarded-Clientcert-fingerprint和X-Forwarded-Clientcert-clientverify時,不允許將自訂的HTTP頭名稱設定為以下欄位:
slb-id、slb-ip、x-forwarded-for、x-forwarded-proto、x-forwarded-eip、x-forwarded-port、x-forwarded-client-srcport、x-forwarded-host、connection、upgrade、content-length、transfer-encoding、keep-alive、te、host、cookie、remoteip、authority。
開啟QUIC升級
選擇是否開啟QUIC升級,如果開啟QUIC升級,請在關聯的QUIC監聽下拉式清單中選擇一個已建立的QUIC監聽。
如果您未建立QUIC監聽,單擊建立監聽,建立一個QUIC監聽。具體操作,請參見添加QUIC監聽。
ALB支援iQUIC和gQUIC,具體使用教程請參見使用QUIC協議提升音視頻業務訪問速度。
步驟二:配置SSL認證
添加HTTPS監聽,您需要配置SSL認證以確保您的業務受到加密保護並得到權威機構的身份認證。下表列出了ALB支援配置的認證及認證說明。
認證 | 說明 | 單向認證是否需要 | 雙向認證是否需要 |
伺服器憑證 | 用來證明伺服器的身份。 您的瀏覽器用來檢查伺服器發送的認證是否是由您信賴的中心簽發的。更多資訊,請參見什麼是SSL認證。 | 是 您可在認證中心購買或上傳伺服器憑證,ALB從認證中心擷取該認證並使用。 | 是 您可在認證中心購買或上傳伺服器憑證,ALB從認證中心擷取該認證並使用。 |
CA認證 | 伺服器用CA認證驗證用戶端認證的簽名。如果沒有通過驗證,拒絕串連。 說明 用戶端使用者在與伺服器端通訊時,用戶端認證用來證明用戶端使用者的真實身份。用戶端認證僅需要在用戶端安裝。 | 否 | 是 您可在認證中心購買或上傳CA認證,ALB從認證中心擷取該認證並使用。 |
由於新認證的上傳、載入及驗證過程均需一定時間,因此使用HTTPS協議的執行個體在應用新認證後,也需要一定時間生效。通常生效時間為一分鐘,最長不會超過三分鐘。
如果您有多網域名稱訪問或掛載多個伺服器憑證的需求,配置完HTTPS監聽後,您可以選擇為該HTTPS監聽添加擴充認證。
在設定SSL憑證設定精靈,選擇一個伺服器憑證。
可選:開啟啟用雙向認證,選擇CA認證來源。
選擇CA認證來源為阿里雲簽發,在選擇預設CA認證下拉框中選擇一個CA認證。
如果沒有可選的CA認證,您可以在下拉框中單擊購買CA認證,以建立新CA認證。
選擇CA認證來源為非阿里雲簽發,在選擇預設CA認證下拉框中選擇一個CA認證。
如果沒有可選的自簽名CA認證,您可以在下拉框中單擊上傳自簽CA認證,在認證應用倉庫頁面,建立資料來源為上傳CA認證的倉庫,然後通過認證應用倉庫上傳自簽名根CA或自簽名子根CA認證。
說明僅標準版和WAF增強版的ALB執行個體支援雙向認證,基礎版ALB執行個體不支援雙向認證。
開啟雙向認證後,如果您後續需要關閉雙向認證,請參考以下步驟。
在執行個體頁面,單擊目標執行個體ID。
在監聽頁簽,單擊目標HTTPS協議監聽ID。
在監聽詳情頁簽,在SSL 憑證地區關閉雙向認證開關。
選擇TLS安全性原則,然後單擊下一步。
如果沒有可選的TLS安全性原則,您可以在下拉框中單擊創建 TLS 安全性原則。
TLS安全性原則包含HTTPS可選的TLS協議版本和配套的密碼編譯演算法套件。
步驟三:選擇伺服器組
在選擇伺服器組設定精靈,選擇伺服器組,並查看後端伺服器資訊,然後單擊下一步。
步驟四:組態稽核
在設定審核頁面,確認配置資訊,單擊提交。
快速建立HTTPS監聽
選擇快速建立監聽,您只需配置監聽協議、監聽連接埠、伺服器憑證、TLS安全性原則和轉寄的後端伺服器組。
在頂部功能表列,選擇ALB執行個體的所屬地區。
在執行個體頁面,找到目標執行個體,單擊執行個體ID。
單擊監聽頁簽,在監聽頁簽單擊快速建立監聽。
在快速建立監聽對話方塊中,完成以下參數的配置,然後單擊確定。
監聽配置
說明
選擇監聽協議
選擇一種監聽協議。本文選擇HTTPS。
監聽連接埠
設定前端協議連接埠,即用來接收請求並向後端伺服器進行請求轉寄的監聽連接埠。
您可以直接單擊常用監聽連接埠快捷填寫,或者輸入連接埠。監聽連接埠範圍:1~65535。
選擇伺服器憑證
在下拉框中選擇一個伺服器憑證。
選擇資源群組
選擇伺服器組歸屬的資源群組。
TLS安全性原則
如果沒有可選的TLS安全性原則,您可以在下拉框中單擊創建 TLS 安全性原則。更多資訊,請參見TLS安全性原則。
轉寄的後端伺服器組
選擇後端伺服器群組類型和後端伺服器。
常見問題
HTTPS支援哪些SSL協議版本?
TLS 1.0、TLS 1.1、TLS 1.2以及TLS 1.3版本,更多資訊,請參見TLS安全性原則。
後端伺服器能否擷取用戶端訪問HTTPS監聽的協議版本?
可以。
HTTPS監聽訪問後端伺服器的HTTP協議版本是什嗎?
用戶端請求的協議為HTTP 1.1或者HTTP 2.0版本時,七層監聽訪問後端伺服器的HTTP協議版本是HTTP 1.1。
用戶端請求的協議為除HTTP 1.1和HTTP 2.0以外其他版本時,七層監聽訪問後端伺服器的HTTP協議版本是HTTP 1.0。
ALB監聽認證為萬用字元認證(泛網域名稱認證)時,需滿足哪些規則?
ALB執行個體添加HTTPS監聽時,若選擇的認證為萬用字元認證(泛網域名稱認證)時,請注意以下規則。
選擇萬用字元認證時,ALB僅能夠識別包含一個萬用字元
*、且萬用字元*放置在最左邊的萬用字元認證。例如ALB可以識別*.example.com和*test.example.com,但不能識別test*.example.com。萬用字元網域名稱匹配規則:
萬用字元層級:萬用字元網域名稱只能匹配相同層級的任意子網域名稱。例如,
*.example.com可以匹配test.example.com,但不能匹配test.test.example.com(因為該子網域名稱和萬用字元網域名稱層級不同)。IDNA支援情況:
若萬用字元認證中萬用字元是最左側標籤的唯一字元,那麼IDNA標籤可與該萬用字元匹配,例如,
xn--fsqu00a.example.com可以匹配*.example.com。若萬用字元認證中萬用字元不是最左側標籤的唯一字元,那麼IDNA標籤不可與該部分萬用字元匹配,例如,
xn--fsqu00atest.example.com不能匹配*test.example.com。
字元支援情況:萬用字元認證中的萬用字元
*僅支援匹配數字0~9、大小寫字母和中劃線(-)。例如,*.example.com可以匹配test.example.com,但不能匹配test_test.example.com。
HTTPS session ticket的保持時間是多久?
HTTPS session ticket保持時間為300秒。
如何防止X-Forwarded-For欄位偽造?
通過在其他產品中指定header欄位記錄用戶端真實IP:
例如您採用用戶端 > CDN > WAF > 負載平衡 > ECS架構,CDN透傳HTTP頭部的
Ali-Cdn-Real-Ip欄位,在WAF中接入時用戶端IP判定方式選擇指定header欄位為Ali-Cdn-Real-Ip,後端Nginx伺服器配置用戶端真實IP的日誌變數為$http_Ali_Cdn_Real_Ip。改用4層監聽(NLB或CLB),後端伺服器可自動擷取用戶端真實IP,詳見後端伺服器通過CLB四層監聽擷取用戶端真實IP。
ALB是否支援WebSocket協議?
ALB的HTTP監聽預設支援WebSocket協議,詳見實踐教程ALB使用WebSocket協議實現資訊即時推送。
ALB是否支援WebSocket Secure(WSS)協議?
ALB的HTTPS監聽預設支援WebSocket Secure(WSS)協議,詳見實踐教程ALB使用WebSocket協議實現資訊即時推送。
相關文檔
產品教程
ALB提供了豐富的進階轉寄規則,具體操作請參見配置監聽轉寄規則。
如果遇到返回異常狀態代碼問題,您可參考ALB異常狀態代碼。
如果遇到健全狀態檢查異常問題,您可參考ALB健全狀態檢查異常排查方法。
更多情境教程,請參見:
使用ALB將HTTP訪問重新導向至HTTPS:通過ALB監聽轉寄規則,可將HTTP協議的請求重新導向到HTTPS,從而確保資料轉送加密,防止中間人攻擊和資料泄露,協助您輕鬆構建符合現代安全標準的網路架構。
配置全鏈路HTTPS訪問實現加密通訊:ALB提供全鏈路HTTPS加密功能,可以實現用戶端到ALB、ALB到後端伺服器之間的全鏈路加密通訊,提升敏感業務的安全性。
單ALB執行個體配置多網域名稱HTTPS網站:當您需要將不同網域名稱的HTTPS訪問請求轉寄至不同的後端伺服器時,您可以通過ALB的HTTPS監聽綁定多個認證,並配置基於網域名稱的轉寄規則,實現多網域名稱HTTPS網站的訪問。
使用ALB部署HTTPS業務(雙向認證):在需要高安全性驗證的情境(如金融、醫學等)下,可通過ALB的HTTPS雙向認證功能,實現用戶端與伺服器之間的相互身分識別驗證,確保資料轉送的安全性。