JDBC 连接 SQL Server 报 SSL connection 错误解决
1178
2018-08-29
系统环境
- 操作系统:Windows 2003
- 数据库:SQL Server 啥版本不知道
- Jre版本:v1.8
- JDBC版本:6.4.0.jre8
错误
测试时系统是Windows 2008 R2使用配置过后,JDBC可以正常连接;但Windows 2003没有对应设置的方法,一直报错“JDBC Could not establish SSL connection ... ...”。
com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]". ClientConnectionId:fe60dc10-3e43-45db-985d-5dc6a819bf52
解决
最终在 stackoverflow 找到了解决方法。
修改 Jre 目录中的 /lib/security/java.security
文件,找到设置jdk.tls.disabledAlgorithms
的位置,类似如下:
如果 Java 版本为 zulu 则 java.security 文件在
...Zulu_Java路径.../conf/security
jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, 3DES_EDE_CBC, DESede, \ EC keySize < 224
去掉3DES_EDE_CBC
后保存退出。
原文说是要去掉两项(3DES_EDE_CBC, DESede
),当我没有找到DESede
,也就没管。
问题也就解决了。
参考
【stackoverflow】JDBC Could not establish SSL connection (Domino Java Agent FP 9) to SQL Server
- 0
- 0
-
分享