javax.net.ssl.SSLHandshakeException: 服务器选择的协议版本 TLS10 不被客户端首选项接受 [TLS13, TLS12]

javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]

我将 DataGrip 升级到 2021.1.2,现在当我 运行 任何查询时,我都会收到此响应

javax.net.ssl.SSLHandshakeException: The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]

如何解决?

您需要执行以下操作:

1: 创建一个名为 custom.java.security

的新文件(任意位置)

2: 在文件中放入以下内容

jdk.tls.disabledAlgorithms=SSLv3, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

3 : 打开 DataGrip -> 在你的数据库面板 -> select 你想要的数据库 -> 右击 -> select 属性 -> 转到高级 选项卡

4 : 在 VM Options 字段中写入以下内容

-Djava.security.properties=${PATH_TO_FILE}/custom.java.security

您需要将 ${PATH_TO_FILE} 替换为您在步骤 1 中创建的文件的文件夹路径

如果您使用 windows

,请不要忘记在路径中使用 \ 而不是 \

5 : 转到文件菜单 -> select 使缓存无效... -> 单击 失效并重启



来源:https://youtrack.jetbrains.com/issue/DBE-13313

尝试将 TLSv1.1、TLSv1.2、TLSv1.3 添加到 enabledTLSProtocols 在 Advanced 选项卡中设置如下: DataGrip Project Preferences

不过最好在服务器端更新 TLS 协议。

其他建议对我的 IntelliJ 无效。

我(连接到 MySQL Aurora 数据库时)的诀窍是 picking/downloading“MySQL for 5.1”驱动程序而不是默认的 MySQL IntelliJ 为我选择的驱动程序。

如果您尝试连接 Microsoft Sql 服务器,请使用驱动器

Microsoft SQL Server (jTds)

注意:点击驱动选项

无需创建文件作为已接受的答案。

出现错误提示时,只需打开“数据源和驱动程序”即可:

“VM选项”中原文:

"-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves"

所以只需删除 TLSv1, TLSv1.1 然后应用并重新连接,它就会起作用。

在您的计算机上找到 java.security 文件并使用任何文本编辑器对其进行编辑,例如记事本 ++

找到文本 jdk.tls.disabledAlgorithms,删除 TLS 1.1 和 TLS 1.2 协议并保存包含更改的文件