SQL Server 2012 与新 TLS 1.2 标准的兼容性

Posted

技术标签:

【中文标题】SQL Server 2012 与新 TLS 1.2 标准的兼容性【英文标题】:SQL Server 2012 Compatibility with New TLS 1.2 Standards 【发布时间】:2015-09-23 11:05:02 【问题描述】:

我正在尝试关闭我的 SQL Server 2012 服务器上的 TLS 1.0 以符合 PCI 标准。

最初我遇到了一些问题,SQL Server 服务无法启动。

我在其他网站和讨论中找到了在线帮助,但结果好坏参半:

这是我到目前为止所做的:

我已经下载了 SQL Server 2012 Cumulative Update 7(CU 6 也可以),然后 SQL Server 服务可以正确启动。

我遇到了无法通过 SQL Server Enterprise Manager 登录数据库实例的问题,该问题已通过安装 .Net 4.6 得到解决。

下一个问题,运行 IIS 应用程序的客户端计算机由于“握手 SSL 错误”而无法连接到 SQL 实例。我听从了建议,安装了最新的 SNAC 原生客户端。

这很难追查,从 Microsoft 下载的最新版本是 2014 年的。然后我从 2015 年 9 月 7 日获得了 sqlnclient.msi CU 7解压生成的子文件夹-“解压文件夹路径\1033_enu_lp\x64\setup\x64”。

我已经在我的 IIS 服务器(和 .Net 4.6)上更新了本机客户端的这个版本,但我仍然无法远程连接到 SQL 实例。如果我启用 TLS 1.0,我就可以连接。

我得到的确切错误是“与服务器成功建立连接,但在登录前握手期间发生错误”。

我的诊断是我的机器上没有与 TLS 1.2 和 CU 7 兼容的正确版本的 SNAC,因为客户端和服务器无法握手。但是,这个 sqlnclient.msi 是从 CU 7 中提取的,我找不到更新的副本。

有没有其他人遇到过这个问题?您使用的是哪个版本的 SNAC?你从哪里得到的?

谢谢

【问题讨论】:

【参考方案1】:

自 1 月 29 日起,Microsoft SQL Server 支持 SQL Server 2008、SQL Server 2008 R2、SQL Server 2012 和 SQL Server 2014 的 TLS 1.2 以及 Server Native Client、Microsoft ODBC Driver for SQL Server、Microsoft JDBC Driver 等主要客户端驱动程序用于 SQL Server 和 ADO.NET (SqlClient)。

关于发布的博文:http://blogs.msdn.com/b/sqlreleaseservices/archive/2016/01/29/tls-1-2-support-for-sql-server-2008-2008-r2-2012-and-2014.aspx

支持 TLS 1.2 的构建列表以及客户端和服务器组件下载位置 (KB3135244):http://support.microsoft.com/kb/3135244

【讨论】:

【参考方案2】:

您是否从 KB (https://support.microsoft.com/en-us/kb/3052468) 获得客户端更新 包名:2012_SP2_SNAC_CU6_3052468_11_0_5592_x64

下载链接:http://support2.microsoft.com/hotfix/KBHotfix.aspx?kbnum=3052468&kbln=en-us

您的 IIS 站点中的提供程序名称是什么?

您将需要客户端和服务器的 KB3052468 更新。它们可在提供的修补程序下载链接上找到。

【讨论】:

以上是关于SQL Server 2012 与新 TLS 1.2 标准的兼容性的主要内容,如果未能解决你的问题,请参考以下文章

如何为来自 windows server 2012 R2 的出站请求启用 TLS 1.2?

SQL Server TLS 1.2 通信真的加密了吗?

Windows server 2012远程桌面服务(RDP)存在SSL / TLS漏洞的解决办法

Windows Server 2008或2012 修复CVE-2016-2183(SSL/TLS)漏洞的办法

Docker 容器里连接远程 Sql Server 数据库

DBeaver无法连接SQL Server