Important
自 2027 年 5 月 31 日起,Azure 应用服务、Azure Functions、Azure 逻辑应用(标准)和 App Service 环境的入站连接将停止支持 TLS 1.0 和 TLS 1.1。 将客户端和应用设置更新到该日期之前的 TLS 1.2 或更高版本。 请参阅 “关于 TLS 1.0 和 1.1 停用”的详细信息 和所需步骤。
Overview
传输层安全性 (TLS) 1.0 和 1.1 是具有已知漏洞的旧安全协议。 应用服务平台在 2027 年 5 月 31 日停用对入站连接的 TLS 1.0 和 1.1 的支持。 将应用和客户端配置为在该日期之前使用 TLS 1.2 或更高版本。
可以为以下应用服务平台资源强制实施最低 TLS 版本:
- Azure 应用服务 (Windows 和 Linux 上的 Web 应用)
- Azure Functions
- Azure 逻辑应用(标准版)
- 应用服务环境 (ASE)
新应用默认为最低 TLS 版本 1.2;此默认值满足停用要求。 如果在任何应用或部署槽位上显式设置 minTlsVersion 或 scmMinTlsVersion 设置为 1.0 或 1.1,请将其更改为 2027 年 5 月 31 日之前的 1.2 或更高版本。 请参阅 关于 TLS 1.0 和 1.1 停用的信息。
关于 TLS 1.0 和 1.1 停用
2027 年 5 月 31 日,应用服务平台将停止在应用终结点和 SCM(Kudu)终结点上接受入站 TLS 1.0 和 1.1 握手。 无论应用中配置的 minTlsVersion 和 scmMinTlsVersion 值为何,拒绝都会在平台前端发生。 协商 TLS 1.0 或 1.1 的任何客户端在该日期之后都无法连接。
2027 年 5 月 31 日之后,请求创建新应用,或更新将 minTlsVersion 或 scmMinTlsVersion 设为 1.0 或 1.1 的现有应用,也可能会失败。
为停用做好准备
在 2027 年 5 月 31 日之前,请对订阅中的每个 App Service、Azure Functions、Azure 逻辑应用(标准)和 应用服务环境 应用执行以下步骤:
- 使用 Azure 服务停用工作簿查找 允许 TLS 1.0 或 1.1 的应用,即将
minTlsVersion或scmMinTlsVersion设置为 1.0 或 1.1 的应用。 - 对于工作簿显示的每个应用,请使用 最低 TLS 版本检查器检测器 查看客户端 是否实际 通过 TLS 1.0 或 1.1 进行连接。
- 更新或替换仍在使用 TLS 1.0 或 1.1 的客户端。 请参阅 使用 TLS 1.0 或 1.1 的常见方案。
- 在每个应用和每个部署槽上将 最小入站 TLS 版本 和 SCM 最低入站 TLS 版本 设置为 1.2 (或 1.3)。 请参阅 更新最低 TLS 版本。
查看最低 TLS 版本
你的应用有两个独立的 TLS 版本设置:
-
最低入站 TLS 版本:适用于到应用的客户端流量(例如,
yourapp.chinacloudsites.cn)。 -
SCM 最低入站 TLS 版本:适用于 SCM (Kudu) 站点,用于部署、日志流式处理和高级工具,例如
yourapp.scm.chinacloudsites.cn。
这两个设置都应设置为 TLS 1.2 或更高版本,以完全保护应用的安全。
- 在 Azure 门户中,导航至您的应用服务、函数或逻辑应用(标准)应用。
- 在左侧菜单中,选择 “设置>配置”。
- 选择“常规设置”选项卡。
- 检查 最低入站 TLS 版本 和 SCM 最低入站 TLS 版本的值。
注释
部署槽位具有其自己的独立 TLS 设置。 单独对每个槽进行检查。
更新最低 TLS 版本
确认客户端支持 TLS 1.2 或更高版本后,更新站点和 SCM 最低 TLS 版本设置。 此步骤在 2027 年 5 月 31 日之前是必需的,以避免 TLS 1.0 和 1.1 从应用服务平台停用时中断。
- 在 Azure 门户中,导航至您的应用服务、函数或逻辑应用(标准)应用。
- 在左侧菜单中,选择 “设置>配置”。
- 选择“常规设置”选项卡。
- 将 最低入站 TLS 版本 设置为 1.2。
- 将 SCM 最低入站 TLS 版本 设置为 1.2。
- 选择应用。
注释
部署槽位具有其自己的独立 TLS 设置。 分别更新每个插槽。
大规模地查找使用旧版 TLS 的应用程序
Azure Resource Graph 和列表 API(例如 az webapp list 和 Get-AzWebApp)不返回 siteConfig 属性。 若要审核订阅中的最低 TLS 版本,请使用 Azure Policy。
使用 Azure 的服务停用工作簿进行审查
Azure 服务停用工作簿列出了允许入站 TLS 1.0 或 1.1 的 Azure 资源,也就是说,这些资源的最低 TLS 版本被配置为允许这些版本。 将工作簿筛选为“应用服务”,以查看 minTlsVersion 或 scmMinTlsVersion 设置为 1.0 或 1.1 的应用。
此视图基于配置:它显示哪些资源 接受 TLS 1.0 或 1.1,而不是实际接收 TLS 1.0 或 1.1 流量的资源。 若要查看哪些客户端实际通过 TLS 1.0 或 1.1 连接到特定应用,请改用该应用上的 最低 TLS 版本检查器检测器 。
使用 Azure Policy 进行审核
Azure Policy 评估资源服务器端,并报告哪些应用不满足所需的 TLS 版本,而无需进行任何更改。
- 在Azure 门户中,搜索并选择“策略”。
- 从左侧菜单中选择 “定义 ”。
- 搜索并分配以下 审核 策略:
- 应用服务应用应使用最新的 TLS 版本
- App Service应用槽应使用最新的 TLS 版本
- 函数应用应使用最新 TLS 版本
- 函数应用槽应使用最新的 TLS 版本
- 将 范围 设置为订阅或管理组。
- 选择 “查看 + 创建”,然后选择 “创建”。
- 在策略评估完成后(新分配最多需 30 分钟),请前往 “策略符合性” 以查看不符合要求的资源。
Warning
Azure Policy 还提供以 “配置” 开头的修正策略(例如, 将应用服务应用配置为使用最新的 TLS 版本)。 这些策略使用 DeployIfNotExists 效果, 并会主动更新 TLS 设置。 仅在确认客户端支持 TLS 1.2 或更高版本后分配修正策略。
注释
内置策略会审核主站点最低 TLS 版本(minTlsVersion)。 目前,SCM 站点没有内置的最低 TLS 版本策略(scmMinTlsVersion)。 使用“ 检查最低 TLS 版本 ”部分中的 CLI 或 PowerShell 命令单独检查 SCM 设置。
有关应用服务策略定义的完整列表,请参阅 Azure 应用服务的 Azure Policy 内置定义。
使用 TLS 1.0 或 1.1 的常见方案
以下是应用可能使用 TLS 1.0 或 1.1 接收入站请求的常见原因。 如果上述任一方案适用于你,请与客户端所有者合作,确保他们在更新最低 TLS 版本之前支持 TLS 1.2 或更高版本。
| Scenario | 需要检查的事项 | 详细信息 |
|---|---|---|
| .NET Framework 客户端调用您的应用程序 | 除非显式配置,否则 4.7 之前的版本可能默认为 TLS 1.0 | 使用 .NET Framework 的 TLS 最佳做法 |
| 用旧版 Java 客户端调用您的应用程序 | 默认情况下,旧版 Java 版本可能无法协商 TLS 1.2 | 解决 TLS 1.0 问题 |
| 较旧的移动设备正在调用您的应用程序 | 旧版 Android 和 iOS 版本默认无法使用 TLS 1.2 | 使用目标设备进行测试 |
| 调用 API 的 IoT 或嵌入式设备 | 设备固件只能支持 TLS 1.0 或 1.1 | 与设备制造商联系 |
| 向应用发送 Webhook 的第三方服务 | 调用方的堆栈可能使用旧版 TLS 版本 | 请联系第三方确认 TLS 1.2 支持 |
| 部署到 SCM 站点的 CI/CD 代理 | 运行在过时操作系统上的自托管构建代理 | 更新代理计算机的 OS 和工具 |
| 调用应用的脚本(PowerShell、curl) | 较旧的脚本运行时可能默认为 TLS 1.0 | 解决 TLS 1.0 问题 |
连接到您应用程序的客户端的一般指南:
- 将客户端操作系统、库和框架更新为其最新版本。
- 避免在客户端代码中硬编码 TLS 协议版本。 尽可能遵循操作系统默认设置。
- 在客户端计算机上使用 Fiddler 验证它与应用协商的 TLS 版本。
常见问题解答
设置更高的最低 TLS 版本时会发生什么情况?
应用服务平台拒绝使用低于配置的最低 TLS 版本的所有入站连接。 尝试使用不支持的 TLS 版本的连接的客户端会收到连接错误。
是否需要更新每个部署槽位?
是的。 每个部署槽位都有自己的独立 minTlsVersion 和 scmMinTlsVersion 设置。 各个槽位单独更新。
这是否会影响我的应用程序的出站连接?
否。 此更改仅适用于应用的 入站 连接。 从应用到其他服务的出站连接受目标服务器的 TLS 要求和应用的客户端配置的约束。
这会影响自定义域名,还是也会影响 *.chinacloudsites.cn?
两者皆是。 无论使用的主机名如何,最低 TLS 版本设置都适用于应用的所有入站流量。
这是否适用于 Azure Functions 和逻辑应用?
是的。 Azure Functions 和逻辑应用(标准)在应用服务平台上运行,并支持相同的 TLS 版本设置。 Logic Apps Consumption(多租户)在单独的平台上运行,不在本文覆盖范围内。
如果我在 2027 年 5 月 31 日之前未更新应用,该怎么办?
使用 TLS 1.0 或 1.1 进行连接的客户端(包括浏览器、SDK、脚本、IoT 设备和 CI/CD 代理)在该日期后无法连接。 有关详细信息,请参阅 关于 TLS 1.0 和 1.1 停用 。
此停用是否适用于应用服务环境?
是的。 应用服务环境与多租户应用服务具有相同的停用日期,即 2027 年 5 月 31 日。