在 SQL Server 计算机上实现密码套件策略后出现“客户端无法建立连接”错误

本文可帮助你解决在服务器上实施密码套件策略后出现的问题。 如果客户端和服务器上支持的密码套件不匹配,则连接可能会失败。

现象

在服务器上实现密码套件策略后,会收到以下错误消息:

远程主机强行关闭现有连接。 [SQLSTATE 42000](错误 10054)链接服务器“DB 名称”的 OLE DB 访问接口“返回消息”客户端无法建立连接”。

原因 1:不包括 Rivest 密码 4 (RC4)

如果密码套件不包含 Rivest 密码 4 (RC4),则任何尝试使用 RC4 进行加密都失败。 同样,如果密码套件包括 RC4,但所涉及的其中一方没有,握手会失败,并且未建立连接。

解决方案

执行以下步骤:

  1. 检查属性是否已 msds-supportedEncryptionType 设置。 如果未设置该属性,则仅启用 RC4。
  2. 将此属性的值设置为 28 以启用 RC4、AES128 和 AES256。

原因 2:传输层安全性 (TLS) 版本不匹配

传输层安全性 (TLS) 版本不匹配。 如果客户端使用 TLS 1.0 启动连接,则可能会出现此问题。 新式密码套件通常不支持 TLS 1.0,因为它们更喜欢更安全的版本,例如 TLS 1.2。

解决方案

执行以下步骤:

  1. 确保客户端驱动程序支持 TLS 1.2。 如果没有,请更新驱动程序。

  2. 将以下密码添加到本地策略以支持 TLS 1.0 通信:

    • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

另请参阅

远程主机强行关闭了现有连接(OS 错误 10054)