将 SQL Server 和客户端升级到 TLS 1.2 的基本指南

传输层安全性 (TLS) 1.2 是用于安全通信的加密协议。 它比以前使用的 TLS 1.0 Microsoft版本更安全。 本文讨论在升级 TLS 时要记住的理想升级工作流和重要项。

有关应升级哪些基于 SQL Server 的服务器、驱动程序和其他组件的详细信息,请参阅 TLS 1.2 对 Microsoft SQL Server 的支持。

有关特定于 SharePoint 的 TLS 1.2 升级的详细信息,请参阅 在 SharePoint 2013 中启用 TLS 和 SSL 支持。

实现 TLS 1.2

若要实现 TLS 1.2,请执行以下步骤:

  1. 在环境中所有基于 SQL Server 的服务器上安装最新更新。

  2. 确保在所有服务器上默认启用 TLS 1.2。 如果不确定 TLS 状态,请运行 SQLCHECK

  3. 在连接到基于 SQL Server 的服务器的所有客户端计算机和应用程序上安装最新更新。 有关客户端驱动程序更新,请参阅 客户端组件下载

  4. 在客户端计算机上禁用 TLS 1.0

  5. 在服务器上禁用 TLS 1.0。 执行此操作时,可能还可以看到禁用的客户端计算机。

实现 TLS 1.2 的挑战

实现 TLS 1.2 时,可能会遇到一些挑战:

  • 确定哪些服务器必须更新,这相对容易。 真正的挑战是确定哪些客户端需要更新以及他们需要哪些更新。 单个客户端计算机可能已安装使用多个不同驱动程序的应用程序,例如对象链接和嵌入、数据库(OLE DB)、Open Database Connectivity (ODBC)和 .NET。 开发客户端列表可能需要仔细彻底的清单。

  • 某些驱动程序无法更新到 TLS 1.2。 此类驱动程序的最常见示例是随 Windows 一起随附的 SQL Server 2000 旧驱动程序,例如 Provider=SQLOLEDB or Driver={SQL Server}。 在这些情况下,必须重写或重新配置连接应用程序以使用 SQL Server 2008 或更高版本的驱动程序或提供程序。

    注意

    与 Windows 一起随附的驱动程序不同,不再支持 SQL Server 2005 SNAC 驱动程序 (Provider=SQLNCLI and Driver={SQL Server Native Client})

  • 如果出于某种原因无法重写应用程序,则不能为特定客户端或目标服务器禁用 TLS 1.0。 例如,如果源代码丢失,或者源代码是第三方应用程序并且供应商现在不业务,则可能会出现这种情况。

  • 如果在服务器上关闭 TLS 1.0,此操作可能会在环境中显示一些不合规的客户端。 数据库管理员必须与各种应用程序开发团队协作,以确定应用程序使用、升级和测试哪些驱动程序。

  • 如果在客户端上关闭 TLS 1.0,否则无法连接到运行 TLS 1.2 且禁用 TLS 1.0 的服务器,客户端应用程序可能能够连接。 但是,根据大多数企业的要求,此操作通常不能接受。 因此,应避免执行此操作。 否则,客户端不使用尝试协商会话的安全套接字层 (SSL) 哈希,而是使用未加密的 Login7 数据包进行连接。 此方法可能会向连接上的任何侦听器显示用户凭据。 如果客户端安装在其他计算机上,则可以轻松地在网络跟踪中观察此方案。

  • 可以使用 IISCrypto 工具确定已启用哪些 TLS 和 SSL 客户端和服务器协议以及如何修改它们。 此工具还允许启用或禁用各种密码套件。 但是,这样做不正确可能会破坏环境中的现有应用程序。 建议不要在没有Microsoft 支持部门指南的情况下修改任何内容。 有关如何验证和配置更改的详细信息,请参阅 限制在Schannel.dll中使用某些加密算法和协议。 请参阅 XEvent ,在 SSL 握手事件期间查找 TLS 版本。

    注意

    使用 Regedit.exe 导出注册表分支并备份原始设置。