c# - 如何解决 Microsoft SQL Server。错误 233。提供商 : SSL Provider

标签 c# sql-server ssl ssms windows-server-2012-r2

在全局勒索软件攻击之后,我们更新了我们的 Windows Server 2012 R2 却发现我们的 SQL Server Management Studio (SSMS) 停止工作了。每当我们尝试在本地或远程连接到 SSMS 时,它都会向我们提供以下错误:

A connection was successfully established with the server, but then an error occured during the login process. (Provider: SSL Provider, error: 0 - No process is on the other end of the pipe.) (Microsoft SQL Server, Error: 233)

我尝试使用“Windows 身份验证”登录,但错误相同。我也尝试了类似 SQL Error 233 问题的解决方案,但没有结果。我在 Stack Overflow 上遇到的所有 SQL 错误 233 问题都与共享内存提供程序有关,但与 SSL 提供程序无关。

最后我看到了这篇文章:https://www.sqlservercentral.com/Forums/Topic1810025-3411-1.aspx并尝试了以下解决方案:

  • 启用密码 RC4 128/128、RC4 50/128、RC4 56/128
  • 启用 TLS 1.0 服务器协议(protocol)
  • 禁用 SSL 2.0(注册表没有 SSL 3.0)[也尝试过
    启用 SSL 2.0 但效果不佳]
  • 同时启用 TLS 1.0、1.1、1.2 协议(protocol)。

但是它们都不起作用,我们仍然无法登录到 SQL Server Management Studio。 非常感谢任何帮助或建议。提前谢谢你。

最佳答案

经过多次修改后,我发现 Windows 更新错误地修改了 TLS 和 SSL 设置。我必须专门对注册表中的密码套件和协议(protocol)进行更改才能使其正常工作,现在我们可以成功登录 SSMS(本地和远程登录)。所以我对registry的具体修改如下:

Changes in Schannel:: (Inlcuding Client Side Protocols)

Protocols Enabled: Multi-Protocol Unified Hello, PCT 1.0, TLS 1.0

Protocols Disabled: SSL 2.0, SSL 3.0, TLS 1.1, TLS 1.2

Ciphers Enabled: NULL, DES 56/56, RC2 40/128, RC2 56/128, RC2 128/128, RC4 40/128, RC4 56/128, RC4 64/128, RC4 128/128, Triple DES 168, AES 128/128, AES 256/256

Hashes Enabled: MD5, SHA, SHA 256, SHA 384, SHA 512

Key Exchanges Enabled: Diffie-Hellman, PKCS, ECDH

Cipher Suite Changes::

Disabled: SSL_CK_RC4_128_WITH_MD5, SSL_CK_DES_192_EDE3_CBC_WITH_MD5

Enabled: Everything else realted to TLS

为了轻松实现这一点(更改安全性和修改注册表)我还使用了这个工具 (IISCrypto):https://www.nartac.com/Products/IISCrypto

请确保此处提到的每个密码或协议(protocol)都已明确启用或禁用,否则问题将无法解决。

希望这对您有所帮助!

关于c# - 如何解决 Microsoft SQL Server。错误 233。提供商 : SSL Provider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44067698/

相关文章:

sql-server - 奇怪的数据库结构

sql - 如何找到当前的交易水平?

SSL 证书供应商变更

c# - 我可以强制 svcutil.exe 为 WCF 服务生成数据协定吗?

c# - 是否有一行代码可以获取该字符串的特定部分?

c# - Azure B2B 某些电子邮件出现错误

c# - 将两个形状连接在一起,Silverlight 2

sql - 在不使用 MAX、AVG 等聚合函数的情况下,将行转换为 SQL 中的列

带有 BufferedWriter 和二进制数据的 Java ssl

authentication - 尝试安装 SSL 时的 LetsEncrypt Web 服务器身份验证问题