共用方式為


應用程式閘道 TLS 原則概觀

您可以使用 Azure 應用程式閘道集中管理 TLS/SSL 憑證,以減少後端伺服器陣列的加密和解密額外負荷。 這個集中的 TLS 處理方式,也可讓您指定適合自己組織安全性需求的中央 TLS 原則。 這可協助您符合法規需求,以及安全性指導方針和建議的做法。

TLS 原則包含了 TLS 通訊協定版本和加密套件,以及 TLS 交握期間所使用加密順序的控制權。 應用程式閘道提供了兩種控制 TLS 原則的機制。 您可以使用預先定義的原則或自訂原則。

使用量和版本詳細資料

Important

從 2025 年 8 月 31 日起,所有與 Azure 應用程式閘道互動的用戶端和後端伺服器都必須使用傳輸層安全性 (TLS) 1.2 或更高版本,因為 TLS 1.0 和 1.1 的支援將會停止。 如需棄用原則和資源設定變更的更多詳細資料,請瀏覽 TLS 1.0 和 1.1 淘汰

  • 所有應用程式閘道都會停用 SSL 2.0 和 3.0,而且無法設定。
  • 自訂 TLS 原則可讓您選取任何 TLS 通訊協定,作為閘道的最低通訊協定版本:TLSv1_0、TLSv1_1、TLSv1_2或TLSv1_3。
  • 如果未選擇任何 TLS 原則,即會根據用來建立該資源的 API 版本套用預設 TLS 原則
  • The 2022 Predefined and Customv2 policies that support TLS v1.3 are available only with Application Gateway V2 SKUs (Standard_v2 or WAF_v2).
  • Using a 2022 Predefined or Customv2 policy enhances SSL security and performance posture of the entire gateway (for SSL Policy and SSL Profile). 因此,舊原則和新原則無法並存在閘道上。 如果用戶端需要較舊的 TLS 版本或加密方式 (例如 TLS v1.0),則必須在整個閘道上使用任何較舊的預先定義或自訂原則。
  • 用於連線的 TLS 加密套件,也是以所使用的憑證類型為基礎。 「用戶端對應用程式閘道連線」中使用的加密套件,則是以應用程式閘道上的接聽程式憑證類型為基礎。 而用來建立「應用程式閘道對後端集區連線」的加密套件,則是以後端伺服器所提供的伺服器憑證類型為基礎。

預先定義的 TLS 原則

應用程式閘道提供了數個預先定義的安全性原則。 您可以使用這些原則的任何一項來設定閘道,以取得適當的安全性層級。 系統會以設定原則時的年和月來標註原則名稱 (AppGwSslPolicy<YYYYMMDD>)。 每項原則都有不同的 TLS 通訊協定版本和/或加密套件。 這些預先定義的原則,都遵照了 Microsoft 安全性小組所提供的最佳做法和建議。 建議您使用最新的 TLS 原則以確保最佳的 TLS 安全性。

下表顯示了每項預先定義原則可支援的加密套件,以及最低通訊協定版本清單。 加密套件的順序會決定 TLS 交涉期間的優先順序。 若要知道這些預先定義原則加密套件的確切順序,您可以參考入口網站中的 PowerShell、CLI、REST API 或接聽程式刀鋒視窗。

預先定義的原則名稱 (AppGwSslPolicy<YYYYMMDD>) 20150501 20170401 20170401S 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 版)。 The gateways created with these API versions will see a read-only property defaultPredefinedSslPolicy:AppGwSslPolicy20220101 in the resource configuration. 此屬性會定義要使用的預設 TLS 原則。
  • 針對較舊的 API 版本 < 2023-02-01,最低通訊協定版本會設定為 1.0 (最高支援 1.2 版),因其使用預先定義的原則 AppGwSslPolicy20150501 作為預設值。

如果預設 TLS 不符合您的需求,請選擇不同的預先定義原則或使用自訂原則。

Note

即將推出適用於已更新預設 TLS 原則的 Azure PowerShell 和 CLI 支援。

自訂 TLS 原則

如果需要針對需求設定 TLS 原則,您可以使用自訂 TLS 原則。 藉由自訂 TLS 原則,您可以完全控制支援的最低 TLS 通訊協定版本,以及支援的加密套件及其優先順序。

Note

The newer, stronger ciphers and TLSv1.3 support are only available with the CustomV2 policy. 可提供更強的安全性和更具優勢的效能。

Important

  • 如果您在應用程式閘道 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"。 You need NOT mention these explicitly when setting a CustomV2 policy with minimum protocol version 1.2 or 1.3 through PowerShell or CLI. 因此,這些加密套件不會出現在 [取得詳細資料] 的輸出中 (除了入口網站的輸出以外)。

Cipher suites

應用程式閘道支援下列加密套件,您可從套件中選擇自訂原則。 加密套件的順序會決定 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

Limitations

  • 後端伺服器的連線一律優先使用 TLS v1.3,但也支援到 TLS v1.0。 無法針對後端 TLS 連線自定義 TLS 版本和加密套件。
  • 到目前為止,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
  • Constrained clients looking for "Maximum Fragment Length Negotiation" support must use the newer 2022 Predefined or Customv2 policies.

Next steps

如果您想要了解如何設定 TLS 原則,請參閱在應用程式閘道上設定 TLS 原則版本和加密套件