一分钟解决 The server selected protocol version TLS10 is not accepted 问题
Posted 明明如月学长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一分钟解决 The server selected protocol version TLS10 is not accepted 问题相关的知识,希望对你有一定的参考价值。
一、问题描述
技术群有个朋友使用 JDBC 连接 SQL Server 遇到以下报错:
关键字为:
The server selected protocol version TLS10 is not accepted by client preferences
根据错误信息和简单谷歌下可知,高版本的 JDK 禁用了 TLS10 。
二、解决步骤
搜索得到的结论是 修改 java.security 文件,但该同学按照文章的指引却没找到该文件。
Windows 系统 可以直接参考下面的路 径去查找
C:\\Program Files\\Java\\jdk-16.0.1\\conf\\security\\java.security
C:\\Program Files\\Java\\jre7\\lib\\security\\java.security
Mac 系统该同学找不到 java.security 文件,可以参考下面步骤查找该文件。
2.1 查看使用的 JDK
java -version
2.2 查看 JDK 路径
/usr/libexec/java_home -V
2.3 查找策略文件
(1)cd 到JDK 目录
cd /Library/Java/JavaVirtualMachines/jdk-18.0.2.1.jdk/Contents/Home
(2) 查找ava.security文件
find . -maxdepth 20 -name “java.security”
发现其实就在 conf 文件夹下的 security 文件夹里:
可以使用记事本 或者 vim 指令修改,如果不支持修改可以加读写权限。
如果不允许修改权限:
chmod 777 java.security
chmod: Unable to change file mode on java.security: Operation not permitted
可尝试:
sudo chmod 777 java.security
打开 java.security 文件之后,修改 jdk.tls.disabledAlgorithms=
后面的值,删除 TLSv1, TLSv1.1
和 3DES_EDE_CBC
即可。
jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL,
include jdk.disabled.namedCurves
如果无法保存,可以使用以下命令保存
w !sudo tee % > /dev/null
修改后:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA,
DH keySize < 1024, EC keySize < 224, anon, NULL,
include jdk.disabled.namedCurves
再执行程序,问题解决。
三、总结
要利用好搜索引擎。
大家解决问题时要学会变通,别人文章里给的路径和自己不一样,自己可以参考类似的路径去查找。
建议积累常见的 linux 指令,可以快速查找某个文件名的文件、快速查找包含某个关键字的文件。
以上是关于一分钟解决 The server selected protocol version TLS10 is not accepted 问题的主要内容,如果未能解决你的问题,请参考以下文章
一分钟解决 The server selected protocol version TLS10 is not accepted 问题
在Eclipse中配置Tomcat时,出现Cannot create a server using the selected type错误
Connection lost: The server closed the connection
dbvis MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT'
The query can‘t be routed to all backend servers because it includes SELECT and SQL variable modific
The query can‘t be routed to all backend servers because it includes SELECT and SQL variable modific