SQL Server JDBC驱动无法使用TLS1.2连接到数据库。

huangapple go评论104阅读模式
英文:

SQL Server Jdbc driver unable to connect to database using TLS1.2

问题

以下是翻译好的部分:

我想从Linux实例使用TLS1.2连接到我的数据库实例,但我无法实现这样做。
我正在使用以下配置:

  1. Java JDK:Amazon Corretto OpenJDK版本:"1.8.0_252"
  2. JDBC驱动程序:Microsoft SQL Server mssql-jdbc:8.2.2.jre8
  3. 连接字符串:jdbc:sqlserver://[我的数据库网址]:1433;SSLProtocol=TLSv1.2
  4. 操作系统:Amazon Linux
  5. 数据库:运行在Windows机器上的Microsoft SQL Server 16
  6. 我已关闭数据库上的TLS1和TLS1.0,以强制我的Java应用仅使用TLS1.2

当我的应用程序尝试连接到数据库时,会出现以下错误:

com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server建立安全连接。错误:没有适当的协议(协议被禁用或密码套件不适当)。

英文:

I would like to connect to my database instance using TLS1.2 from a Linux instance and I am unable to do so.
I am using the following configuration

  1. Java JDK : Amazon corretto openjdk version : "1.8.0_252"
  2. JDBC driver : Microsoft SQL server mssql-jdbc:8.2.2.jre8
  3. Connection string : jdbc:sqlserver://[my database url]:1433;SSLProtocol=TLSv1.2
  4. Operating system: Amazon Linux
  5. Database: Microsoft SQL Server 16 running on a Windows machine
  6. I have turned off TLS1 and TLS1.0 on the database to force my java application to use only TLS1.2

The following error appears when my application tries to connect to the database:

> com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: No appropriate protocol (protocol is disabled or cipher suites are inappropriate).

答案1

得分: 3

这可能不是最好的解决方案,但为了使我的应用程序正常工作,我使用了以下代码:

java.security.Security.setProperty("jdk.tls.disabledAlgorithms","SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL");

我从Java 8.0.202升级到了8.0.291,并遇到了你提到的问题,该问题禁用了TLS 1.0和1.1。我上面设置的属性是来自Java 8.0.202的设置。

英文:

This maybe not the best solution but to get my application working i used,

java.security.Security.setProperty("jdk.tls.disabledAlgorithms","SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024,EC keySize < 224, 3DES_EDE_CBC, anon, NULL");

I upgraded from Java 8.0.202 to 8.0.291 and got the issue you have mentioned which had disabled TLS 1.0 and 1.1. The property i have set above are the settings from Java 8.0.202

huangapple
  • 本文由 发表于 2020年10月15日 04:57:27
  • 转载请务必保留本文链接:https://go.coder-hub.com/64361403.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定