【问题标题】:SQL connectivity exceptions - The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryptionSQL 连接异常 - 驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接
【发布时间】:2019-09-25 03:37:52
【问题描述】:

我们观察到 SQL Server 连接因以下错误而中断 : com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接。错误:“SQL Server 返回不完整的响应。连接已关闭。ClientConnectionId:b928e7b0-689b-40f8-be3e-158261d0a84a”。

原因:com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层 (SSL) 加密建立与 SQL Server 的安全连接。错误:“SQL Server 返回不完整的响应。连接已关闭。ClientConnectionId:b928e7b0-689b-40f8-be3e-158261d0a84a”

我们在我们的应用程序中使用 sqljdbc42.jar,MSSQL Server 是 MS SQL SERVER 2014 SP3 java 版本是 1.8

我们不能设置为 TLSv1,如SQL Server JDBC Error on Java 8: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption 的其中一项决议中所述, 作为依赖应用程序需要 TLSv2 才能工作。

按照微软的说法,jdbc 4.2 jar 应该可以解决它,但我们已经在上面了。 https://blogs.msdn.microsoft.com/dataaccesstechnologies/2016/11/30/intermittent-jdbc-connectivity-issue-the-driver-could-not-establish-a-secure-connection-to-sql-server-by-using-secure-sockets-layer-ssl-encryption-error-sql-server-returned-an-incomplete-respons/

请分享您可能针对类似问题实施的建议或意见。

谢谢, 尼维迪塔

【问题讨论】:

    标签: java jdbc java-8


    【解决方案1】:

    您是否尝试过微软文章选项 2 中提到的注册表更改?

    • 禁用 DHE 密码套件:

    警告:如果您不正确地使用注册表编辑器,可能会导致严重的问题,可能需要您重新安装操作系统。 Microsoft 不能保证您可以解决因错误使用注册表编辑器而导致的问题。使用注册表编辑器需要您自担风险。

    1. 打开注册表编辑器。
    2. 通过导航到以下注册表位置访问密钥交换算法设置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms
    3. 选择 Diffie-Hellman 子键(如果不存在,则创建 它)。
    4. 将启用的 DWORD 注册表值设置为 0(如果没有 存在,然后创建它)。
    5. 退出注册表编辑器。

    变通办法的影响:除非已实施替代故障转移选项,否则依赖 DHE 密钥的加密 TLS 会话将不再起作用。

    https://technet.microsoft.com/en-us/library/security/ms15-055.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-26
      • 2015-12-22
      • 2015-11-03
      • 1970-01-01
      • 2017-02-02
      • 2021-10-11
      • 2021-07-08
      • 2022-01-19
      相关资源
      最近更新 更多