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

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

症状

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

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

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

如果密码套件不包括 Rivest Cipher 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)