你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

应用程序网关 TLS 策略概述

Azure 应用程序网关允许你集中进行 TLS/SSL 证书管理,并减少后端服务器场的加密和解密开销。 这种集中式 TLS 处理还允许指定适合组织安全要求的中央 TLS 策略。 这有助于满足符合性要求以及安全指南和建议做法。

TLS 策略包括 TLS 协议版本控制和 TLS 握手期间会使用的密码套件和优先级顺序。 应用程序网关提供两种控制 TLS 策略的机制。 可使用预定义的策略或自定义策略。

用法和版本详细信息

重要

从 2025 年 8 月 31 日开始,与 Azure 应用程序网关交互的所有客户端和后端服务器必须使用传输层安全性 (TLS) 1.2 或更高版本,如对 TLS 1.0 和 1.1 的支持将会终止中所述。

  • 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 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
默认值 正确
(适用于 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 会话(ID 或票证)恢复。
  • 应用程序网关 v2 不支持以下 DHE 加密法。 即使在预定义策略中指定这些加密法,也不会使用它们来与客户端建立 TLS 连接。 建议不要使用 DHE 密码,而应使用安全快捷的 ECDHE 密码。
    • 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 策略版本和密码套件