重要说明
即将进行的退休变动
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 版本。
目前,我们支持 TLS 1.0、1.1 和 1.2。 设置最低 TLS 版本可确保支持后续更新的 TLS 版本。 例如,选择高于 1.1 的 TLS 版本。 这表示仅接受 TLS 1.1 和 1.2 的连接,并拒绝 TLS 1.0 的连接。 在测试并确认应用程序支持它后,我们建议将最低 TLS 版本设置为 1.2,因为它包括针对之前版本中发现的漏洞的修补程序,并且是 Azure SQL 托管实例中受支持的最高 TLS 版本。
对于使用依赖于较旧版本 TLS 的应用程序的客户,我们建议根据应用程序的要求设置最低 TLS 版本。 对于依赖于使用未加密连接进行连接的应用程序的客户,我们建议不要设置任何最低 TLS 版本。
有关详细信息,请参阅 SQL 数据库连接的 TLS 注意事项。
设置最低 TLS 版本后,如果客户端使用的服务器的 TLS 版本低于最低 TLS 版本,则其登录尝试将失败,并显示以下错误:
Error 47072
Login failed with invalid TLS version
注意
配置最低 TLS 版本时,该最低版本将在应用程序层强制执行。 尝试在协议层确定 TLS 支持的工具在直接针对托管实例终结点运行时,除了需要的最低版本,还可能返回其他 TLS 版本。
通过 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 脚本演示如何在实例级别 Get
和 Set
“最低 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"