今天连接SQL Server2015时,控制台报错“The server selected protocol version TLS10 is not accepted by client preferences [TLS12]”
通过百度查原因,说是因为新版本的jdk不支持TLS10了
网上的解决方案:
在 jre\lib\security 文件夹下,编辑 java.security 文件,在文件中找到 jdk.tls.disabledAlgorithms 配置项,将 TLSv1, TLSv1.1 删除即可。
修改后:
jdk.tls.disabledAlgorithms=SSLv3,RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, anon, NULL, include jdk.disabled.namedCurves
但是修改后根本不起作用,重启电脑后还是不行作用。看到评论区说高版本的Idea是自带jdk的,可能需要修改Idea安装目录下的 java.security 文件才行。于是我找到这个文件,发觉已经是没有包含TLSv1, TLSv1.1了。可是依然还是连接失败不行。
索性我将jdk下的jre里面的lib\security 文件夹下的 java.security 文件也修改了,突然发现没有报错了。忽然想起来我在Idea中为项目工程配置的SDK就是jdk目录下的。
总结:
1. 如果为项目工程配置了SDK,则需要修改配置目录下的 java.security 文件;
2. 如果线上环境使用了 jre,则修改 jre下的lib\security 文件夹下的 java.security文件;
3. 如果开发时使用了Idea自带的jdk,就修改Idea内部的,我的Idea2018内部的jre目录是D:\JetBrains\IntelliJ IDEA 2018.1.6\jre64\lib\security\java.security