應用程式閘道 TLS 原則概觀
您可以使用 Azure 應用程式閘道集中管理 TLS/SSL 憑證,以減少後端伺服器陣列的加密和解密額外負荷。 這個集中的 TLS 處理方式,也可讓您指定適合自己組織安全性需求的中央 TLS 原則。 這可協助您符合法規需求,以及安全性指導方針和建議的做法。
TLS 原則包含了 TLS 通訊協定版本和加密套件,以及 TLS 交握期間所使用加密順序的控制權。 應用程式閘道提供了兩種控制 TLS 原則的機制。 您可以使用預先定義的原則或自訂原則。
使用量和版本詳細資料
- 所有應用程式閘道都會停用 SSL 2.0 和 3.0,而且無法設定。
- 自訂 TLS 原則可讓您選取任何 TLS 通訊協定,作為閘道的最低通訊協定版本:TLSv1_0、TLSv1_1、TLSv1_2或TLSv1_3。
- 如果未選擇任何 TLS 原則,即會根據用來建立該資源的 API 版本套用預設 TLS 原則。
- 支援 TLS v1.3 的 2022 預先定義和 Customv2 原則,只適用於應用程式閘道 V2 SKU (Standard_v2 或 WAF_v2)。
- 使用 2022 預先定義或 Customv2 原則,可增強整個閘道的 SSL 安全性和效能狀態 (SSL 原則和 SSL 設定檔)。 因此,舊原則和新原則無法並存在閘道上。 如果用戶端需要較舊的 TLS 版本或加密方式 (例如 TLS v1.0),則必須在整個閘道上使用任何較舊的預先定義或自訂原則。
- 用於連線的 TLS 加密套件,也是以所使用的憑證類型為基礎。 「用戶端對應用程式閘道連線」中使用的加密套件,則是以應用程式閘道上的接聽程式憑證類型為基礎。 而用來建立「應用程式閘道對後端集區連線」的加密套件,則是以後端伺服器所提供的伺服器憑證類型為基礎。
預先定義的 TLS 原則
應用程式閘道提供了數個預先定義的安全性原則。 您可以使用這些原則的任何一項來設定閘道,以取得適當的安全性層級。 系統會以設定原則時的年和月來標註原則名稱 (AppGwSslPolicy<YYYYMMDD>)。 每項原則都有不同的 TLS 通訊協定版本和/或加密套件。 這些預先定義的原則,都遵照了 Microsoft 安全性小組所提供的最佳做法和建議。 建議您使用最新的 TLS 原則以確保最佳的 TLS 安全性。
下表顯示了每項預先定義原則可支援的加密套件,以及最低通訊協定版本清單。 加密套件的順序會決定 TLS 交涉期間的優先順序。 若要知道這些預先定義原則加密套件的確切順序,您可以參考入口網站中的 PowerShell、CLI、REST API 或接聽程式刀鋒視窗。
預先定義的原則名稱 (AppGwSslPolicy<YYYYMMDD>) | 20150501 | 20170401 | 20170401 | 20220101 | 20220101S |
---|---|---|---|---|---|
最低通訊協定版本 | 1.0 | 1.1 | 1.2 | 1.2 | 1.2 |
啟用的通訊協定版本 | 1.0 1.1 1.2 |
1.1 1.2 |
1.2 | 1.2 1.3 |
1.2 1.3 |
Default | True (適用於 API 版本 < 2023-02-01) |
False | False | True (適用於 API 版本 >= 2023-02-01) |
False |
TLS_AES_128_GCM_SHA256 | ✗ | ✗ | ✗ | ✓ | ✓ |
TLS_AES_256_GCM_SHA384 | ✗ | ✗ | ✗ | ✓ | ✓ |
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 | ✓ | ✗ | ✗ | ✓ | ✗ |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 | ✓ | ✗ | ✗ | ✓ | ✗ |
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_256_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_RSA_WITH_AES_128_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_RSA_WITH_AES_256_GCM_SHA384 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_128_GCM_SHA256 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_256_CBC_SHA256 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_128_CBC_SHA256 | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_RSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 | ✓ | ✓ | ✓ | ✓ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 | ✓ | ✓ | ✓ | ✓ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA | ✓ | ✓ | ✓ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_256_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_AES_128_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_RSA_WITH_3DES_EDE_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA | ✓ | ✗ | ✗ | ✗ | ✗ |
預設 TLS 原則
當應用程式閘道資源設定中未指定任何特定的 SSL 原則時,就會套用預設 TLS 原則。 此預設原則的選取是以用來建立該閘道的 API 版本為基礎。
- 針對 API 版本 2023-02-01 或更高版本,最低通訊協定版本會設定為 1.2 (最高支援 1.3 版)。 使用這些 API 版本建立的閘道,將在資源設定中看到唯讀屬性 defaultPredefinedSslPolicy:AppGwSslPolicy20220101。 此屬性會定義要使用的預設 TLS 原則。
- 針對較舊的 API 版本 < 2023-02-01,最低通訊協定版本會設定為 1.0 (最高支援 1.2 版),因其使用預先定義的原則 AppGwSslPolicy20150501 作為預設值。
如果預設 TLS 不符合您的需求,請選擇不同的預先定義原則或使用自訂原則。
注意
即將推出適用於已更新預設 TLS 原則的 Azure PowerShell 和 CLI 支援。
自訂 TLS 原則
如果需要針對需求設定 TLS 原則,您可以使用自訂 TLS 原則。 藉由自訂 TLS 原則,您可以完全控制支援的最低 TLS 通訊協定版本,以及支援的加密套件及其優先順序。
注意
較新、較強的加密方式和 TLSv1.3 支援,只適用於 CustomV2 原則。 可提供更強的安全性和更具優勢的效能。
重要
- 如果您在應用程式閘道 v1 SKU (Standard 或 WAF) 使用了自訂 SSL 原則,請務必將強制加密 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" 新增到清單中。 需要有此加密方式,才能在應用程式閘道 v1 SKU 中啟用計量和記錄。 應用程式閘道 v2 SKU (Standard_v2或WAF_v2) 不會強制使用此加密方式。
- TLSv1.3 會強制使用加密套件 "TLS_AES_128_GCM_SHA256" 和 "TLS_AES_256_GCM_SHA384"。 透過 PowerShell 或 CLI 設定最低通訊協定版本 1.2 或 1.3 的 CustomV2 原則時,您「不」需要明確提及這些原則。 因此,這些加密套件不會出現在 [取得詳細資料] 的輸出中 (除了入口網站的輸出以外)。
加密套件
應用程式閘道支援下列加密套件,您可從套件中選擇自訂原則。 加密套件的順序會決定 TLS 交涉期間的優先順序。
- TLS_AES_128_GCM_SHA256 (僅適用於 Customv2)
- TLS_AES_256_GCM_SHA384 (僅適用於 Customv2)
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
限制
- 與後端伺服器的連線,最低通訊協定版本一律為 TLS v1.0,最高為 TLS v1.2。 因此,要建立與後端伺服器的安全連線時,只支援 TLS 1.0、1.1 和 1.2 版。
- 到目前為止,TLS 1.3 實作並未啟用「零來回時間 (0-RTT)」功能。
- 不支援 TLS 工作階段 (識別碼或票證) 繼續。
- 應用程式閘道 v2 不支援下列 DHE 加密方式。 即使在預先定義的原則中提及這些加密方式,也不會用於與用戶端的 TLS 連線。 建議改用更安全更快速的 ECDHE 加密方式,來取代 DHE 加密。
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- 尋求「最大片段長度交涉」支援的受限制用戶端必須使用較新的 2022 預先定義或 Customv2 原則。
下一步
如果您想要了解如何設定 TLS 原則,請參閱在應用程式閘道上設定 TLS 原則版本和加密套件。