SQL Server 服务因“坏”而关闭?SSL证书

Evi*_*lDr 7 sql-server sql-server-2012 windows-server

今天早上发现在 Win2012 上运行的 SQL Server 2012 服务已经关闭。当我以服务器管理员身份登录并尝试访问 SSMS 时,在输入我的凭据后,我收到了“传输”错误。在检查 Windows 服务时,SQL Server 和代理均已停止。我试图启动它们,但出现超时错误。

SQL 事件日志包含以下条目:

服务器无法加载启动 SSL 连接所需的证书。它返回以下错误:0x8009030d。检查证书以确保它们有效。

Windows 事件日志包含以下条目:

日志名称:应用程序

来源:MSSQLSERVER

日期:14/03/2013 09:01:40

说明:无法加载用户指定的证书 [Cert Hash(sha1) "A1CF6EE1C352B7A185950EB400013269759C24BD"]。服务器将不接受连接。您应该验证证书是否已正确安装。请参阅联机丛书中的“配置 SSL 使用的证书”。

说明:TDSSNIClient 初始化失败,错误为 0x80092004,状态代码为 0x80。原因:无法初始化 SSL 支持。找不到对象或属性。

说明:TDSSNIClient 初始化失败,错误为 0x80092004,状态代码为 0x1。原因:初始化因基础结构错误而失败。检查以前的错误。找不到对象或属性。

描述:由于网络库中的内部错误,无法启动网络库。要确定原因,请查看错误日志中紧接此错误之前的错误。

说明:SQL Server 无法生成 FRunCommunicationsManager 线程。检查 SQL Server 错误日志和 Windows 事件日志以获取有关可能的相关问题的信息。

以下过程解决了该问题:

  1. 开始 > SQL Server 配置管理器
  2. SQL Server 网络配置 > MSSQLSERVER 协议(属性)
  3. 取消选中常规 > 强制加密
  4. 开始 > 服务 > 启动 MSSQLSERVER 服务

更新:

以上仅解决了问题,直到下次重新启动,再次发生。显然,SSL 证书需要 SQL2012 读取的权限,但我不敢一直重启,直到这个问题得到解决,所以我现在通过 RDC 而不是通过 SSL 的 SSMS 访问。

Rem*_*anu 4

有些应用程序可以更改计算机密钥集容器文件夹上的 ACL。发生这种情况时,合法密钥集用户将失去对这些密钥集的访问权限。请参阅知识库文章 278381:MachineKeys 文件夹的默认权限以了解正确的权限集。

如果您想要绝对确认,请参阅BUG:当 SQL Server 2005 在网络服务帐户下运行时,您无法通过使用证书启用加密作为“解决方法”(它涉及编译将正确重置 ACL 的 C++ 应用程序...) 。但您可以简单地根据提到的 KB278381 设置 ACL,看看问题是否消失。

更多相关知识库:

我还没有找到哪个应用程序更改了 ACL。我的钱花在了一些防病毒应用程序上。不要问我怎么知道所有这些随机的不同信息......