在 Azure SQL 托管实例中配置最低 TLS 版本

重要

退役更改

Azure 已宣布对旧 TLS 版本(TLS 1.0 和 1.1)的支持将于 2025 年 8 月 31 日结束。 有关详细信息,请参阅 TLS 1.0 和 1.1 弃用。 从 2024 年 11 月开始,将无法再为低于 TLS 1.2 的 Azure SQL 托管实例客户端连接设置最低 TLS 版本。

最低 传输层安全性(TLS) 版本设置允许客户控制其 Azure SQL 托管实例使用的 TLS 版本。

当前对 SQL 托管实例强制实施 最低 TLS 版本 1.2。 设置最低 TLS 版本可确保支持后续更新的 TLS 版本。 仅接受使用 TLS 1.2 或更高版本的连接。

有关详细信息,请参阅 SQL 数据库连接的 TLS 注意事项

设置最低 TLS 版本后,使用低于服务器最低 TLS 版本的客户端的登录尝试将失败,并出现以下错误:

Error 47072
Login failed with invalid TLS version

注释

  • 配置最低 TLS 版本时,会在应用程序层强制执行该最低版本。 尝试在协议层测试 TLS 支持的工具在直接针对托管实例终结点运行时,可能在返回所需的最低版本的同时还会返回其他 TLS 版本。
  • TLS 1.0 和 1.1 已停用 ,不再可用。

通过 PowerShell 设置最低 TLS 版本

注释

本文使用 Azure Az PowerShell 模块,这是建议用于与 Azure 交互的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

重要

PowerShell Azure 资源管理器(AzureRM)模块已于 2024 年 2 月 29 日弃用。 所有未来的开发都应使用 Az.Sql 模块。 建议用户从 AzureRM 迁移到 Az PowerShell 模块,以确保持续支持和更新。 不再维护或支持 AzureRM 模块。 Az PowerShell 模块和 AzureRM 模块中命令的参数基本相同。 有关兼容性的详细信息,请参阅 新的 Az PowerShell 模块简介

以下脚本需要 Azure PowerShell 模块

以下 PowerShell 脚本演示如何在实例级别进行GetSet操作,设置最低 TLS 版本属性。

#Get the Minimal TLS Version property
(Get-AzSqlInstance -Name sql-instance-name -ResourceGroupName resource-group).MinimalTlsVersion

# Update Minimal TLS Version Property
Set-AzSqlInstance -Name sql-instance-name -ResourceGroupName resource-group -MinimalTlsVersion "1.2"

通过 Azure CLI 设置最低 TLS 版本

重要

本部分中的所有脚本都需要 Azure CLI

Bash shell 中的 Azure CLI

以下 CLI 脚本演示如何在 bash shell 中更改 最低 TLS 版本 设置:

# Get current setting for Minimal TLS Version
az sql mi show -n sql-instance-name -g resource-group --query "minimalTlsVersion"

# Update setting for Minimal TLS Version
az sql mi update -n sql-instance-name -g resource-group --set minimalTlsVersion="1.2"

即将推出的 TLS 1.0 和 1.1 停用更改常见问题解答

Azure 已宣布对旧 TLS 版本(TLS 1.0 和 1.1)的支持将于 2025 年 8 月 31 日结束。 有关详细信息,请参阅 TLS 1.0 和 1.1 弃用

从 2024 年 11 月开始,将无法再为低于 TLS 1.2 的 Azure SQL 数据库和 Azure SQL 托管实例客户端连接设置最低 TLS 版本。

为什么 TLS 1.0 和 1.1 即将停用?

TLS 版本 1.0 和 1.1 已过时,不再满足现代安全标准。 他们即将停用:

  • 减少对已知漏洞的暴露。
  • 符合行业最佳做法和合规性要求。
  • 确保客户端使用更强大的加密协议,例如 TLS 1.2 或 TLS 1.3。

如果在 2025 年 8 月 31 日之后使用 TLS 1.0 和 1.1,会发生什么情况?

2025 年 8 月 31 日之后,将不再支持 TLS 1.0 和 1.1,并且使用 TLS 1.0 和 1.1 的连接可能会失败。 在截止时间之前过渡到最低 TLS 1.2 或更高版本至关重要。

如何检查 SQL 数据库、SQL 托管实例、Cosmos DB 或 MySQL 实例是否正在使用 TLS 1.0/1.1?

  • 若要识别使用 TLS 1.0 和 1.1 连接到 Azure SQL 数据库的客户端,必须启用 SQL 审核日志 。 启用审核后,可以查看客户端连接。

  • 若要识别使用 TLS 1.0 和 1.1 连接到 Azure SQL 托管实例的客户端,必须启用 审核 。 启用审核后,可以使用 Azure 存储、事件中心或 Azure Monitor 日志的 审核 日志来查看客户端连接。

  • 若要验证 Azure Cosmos DB 的最低 TLS 版本,请使用 Azure CLI 或 Azure PowerShell 获取属性的 minimalTlsVersion 当前值

  • 若要验证为 Azure Database for MySQL 服务器配置的最低 TLS 版本,请使用 MySQL 命令行接口检查服务器参数的值 tls_version ,以了解配置了哪些协议。

如果我已配置 TLS 1.2,为什么我的服务已标记?

由于以下原因,服务可能未正确标记:

  • 旧客户端间歇性回退到旧版 TLS 版本。
  • 未强制实施 TLS 1.2 的配置错误的客户端库或连接字符串。
  • 检测逻辑中的遥测延迟或误报。

如果我收到错误停用通知,该怎么办?

如果服务器或数据库已配置为最低 TLS 1.2,或未配置最低 TLS(SQL 数据库和映射到minimalTLSVersion的 SQL 托管实例0中的默认设置),并且使用 1.2 进行连接,则无需执行任何作。

如果应用程序或客户端库不支持 TLS 1.2,会发生什么情况?

禁用 TLS 1.0/1.1 后,连接将失败。 必须将客户端库、驱动程序或框架升级到支持 TLS 1.2 的版本。

如果我的服务器未配置最低 TLS 版本,该怎么办?

未配置最低 TLS 版本且使用 TLS 1.0/1.1 进行连接的服务器应升级到最低 TLS 版本 1.2。 对于未配置最低 TLS 版本且使用 1.2 进行连接的服务器,无需执行任何作。 对于未配置最低 TLS 版本和使用加密连接的服务器,无需执行任何作。

如何收到有关我的资源的 TLS 停用的通知?

8 月,电子邮件提醒将继续停用 TLS 1.0 和 1.1。

如果无法满足 2025 年 8 月 31 日的最后期限,是否可以请求例外或延期?

TLS 1.0 和 1.1 在 8 月 31 日前停用是 Azure 范围的截止时间。 如果无法在停用截止时间之前更新数据库资源以使用最低 TLS 版本 1.2,并且需要对方案提供支持, 请向 Azure 数据库提交说明 迁移阻止程序的请求。

如果需要有关验证或更新 TLS 设置的帮助,我可以联系谁?

如果需要有关验证或更新 TLS 设置的帮助,请使用 Azure 门户开具支持票证。