你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
应用程序网关允许用户集中 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 会话(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
- Constrained clients looking for "Maximum Fragment Length Negotiation" support must use the newer 2022 Predefined or Customv2 policies.
Next steps
若要了解如何配置 TLS 策略,请参阅在应用程序网关上配置 TLS 策略版本和密码套件。