出于安全原因,我们在windows上禁用了TLS 1.0和旧协议,在以下注册表路径下只启用了TLS 1.1和TLS 1.2:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols 之后,SQL服务赢了'不以以下错误开头:
2015-02-13 17:35:10.12 spid13s The server could not load the certificate it needs to initiate an SSL connection. It returned the following error: 0x80090331. Check certificates to make sure they are valid.
2015-02-13 17:35:10.12 spid13s Error: 26014, Severity: 16, State: 1.
2015-02-13 17:35:10.12 spid13s Unable to load user-specified certificate [Cert Hash(sha1) "9B49E2FB65EE880F7C8818A90187F572566C9213"]. The server will not accept a connection. You should verify that the certificate is correctly installed. See "Configuring Certificate for Use by SSL" in …Run Code Online (Sandbox Code Playgroud) 我正在尝试关闭 SQL Server 2012 服务器上的 TLS 1.0 以符合 PCI 标准。
最初,我在 SQL Server 服务无法启动时遇到了一些麻烦。
我通过对上一个问题的回答找到了有关此问题的帮助:
我的结果喜忧参半:
我已经下载了 SQL Server 2012 Cumulative Update 7(CU 6 也可以使用),然后 SQL Server 服务正确启动。
我遇到了无法通过 SQL Server 企业管理器登录数据库实例的问题,该问题已通过安装 .Net 4.6 解决。
下一个问题,由于“握手 SSL 错误”,运行 IIS 应用程序的客户端计算机无法连接到 SQL 实例。我听从了建议并安装了最新的 SNAC 本机客户端。
这很难追踪,从 Microsoft 下载的最新版本是 2014 年的。然后我从生成的子文件夹中获得了 2015 年 9 月 7 日修订号 {E6CB4138-3D1C-4ADC-95C4-88322B60FC14} 的 sqlnclient.msi通过 CU 7 的摘录 - “提取文件夹的路径 \1033_enu_lp\x64\setup\x64”。
我已经在我的 IIS 服务器(和 .Net 4.6)上更新了本机客户端的这个版本,但我仍然无法远程连接到 SQL 实例。如果我启用 TLS 1.0,我就可以连接。
我得到的确切错误是“已成功与服务器建立连接,但在登录前握手期间发生错误”。
我的诊断是我的机器上没有与 …
背景
我们需要 PCI-DSS 合规性,因此必须禁用 TLS1.0。在我的测试环境中,我们有 SQL Server 2014 SP1 和 CU 1(根据这篇文章)和 IIS 8 都在同一个盒子上。我使用Nartac IIS Crypto 工具禁用 TLS1.0 并重新启动。那是我的麻烦开始的时候。
SQL 代理无法启动,SSMS 无法连接到服务器,网站停止工作。(幸运的是,我能仍然使远程桌面连接到我的测试服务器。)
然后我读了微软的文章,它说基本上 SQL Server 只需要有 TLS1.0。
题
我可以解决这个问题吗?(也许我需要一个单独的盒子来测试 SQL Server?)