在 Windows 上禁用 TLS 1.0 和 SSL 3.0 后,Sql 服务器服务无法启动

4 sql-server windows ssl

我们一直在加固我们的服务器,最近由于贵宾犬攻击,我们禁用了 SSL 3.0。当我在我们的其中一台测试服务器上执行此操作时,SQL Server 在重新启动后无法启动。

通过注册表禁用 TLS 1.0 和 SSL 3.0,我已经能够在 Windows Server 2012 和 Windows 7 上重现这一点。我在服务器机器上使用 SQL Server 2012。在我的 Windows 7 机器上,sql server 2012 和 sql server 2005 不会以禁用的方式启动。

这些是我得到的事件日志错误:

应用程序日志:

(28/10/2014 8:38:54 AM) SQL Server 无法生成 FRunCM 线程。检查 SQL Server 错误日志和 Windows 事件日志以获取有关可能的相关问题的信息。(28/10/2014 8:38:54 AM) 由于网络库中的内部错误,无法启动网络库。要确定原因,请查看错误日志中紧接此错误之前的错误。(28/10/2014 8:38:54 AM) TDSSNIClient 初始化失败,错误为 0x80090331,状态代码为 0x1。(28/10/2014 8:38:54 AM) TDSSNIClient 初始化失败,错误为 0x80090331,状态代码为 0x80。

系统日志

(28/10/2014 8:38:54 AM) SQL Server (MSSQLSERVER) 服务因特定于服务的错误 %%-2146893007 而终止。(28/10/2014 8:38:54 AM) 创建 SSL 服务器凭据时发生致命错误。内部错误状态为 10013。

有谁知道我们可以禁用 SSL 3.0 和 TLS 1.0 并启动 SQLServer 服务器吗?

小智 5

如果 TLS 1.0 和 SSL 3.0 被禁用,问题仍然存在。目前我看不到任何解决方法,也许微软需要在未来研究这一点,因为 TLS 1.0 可能会随着时间的推移逐步淘汰。

我禁用 TLS 1.0 的原因是为了减轻 BEAST 攻击,正如我在昨晚的一些阅读中发现的那样,这是错误的方法。要在服务器上正确禁用 BEAST 攻击,应该提升特定的 RC4 密码,以便它与 TLS 1.0 一起使用。不幸的是,这引发了另一个关于 RC4 密码也易受攻击的事实,但这是另一个讨论。

我意识到我还没有找到问题的答案。但我的问题已通过在注册表中启用 TLS 1.0 解决。