由于SSLHandshakeException,无法连接到数据库
最后修改时间:2023 年 9 月 20 日警告
由于Java安全策略,TLS 1.0和TLS 1.1协议的使用已被禁用。javax.net.ssl.SSLHandshakeException当您尝试连接到仍接受这些协议的旧服务器时,此Java更新导致出现错误。
作为修复,您可以显着地启用这些协议。请注意,这可能会导致漏洞问题。考虑使用较新版本的 TLS。
MySQL
数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标
。
按。CtrlAltShift0S
选择要启用取消算法的数据源(例如MySQL 8.0.3)。可能会取消以下简单的算法:
SSLv3,TLSv1,TLSv1.1,RC4,DES,MD5withRSA,DH keySize < 1024,EC keySize < 224,3DES_EDE_CBC,anon,NULL,include jdk.disabled.namedCurves。在数据源的右侧配置中,单击测试连接。
在通知中,选择您要执行的操作。您可以执行以下操作:
编辑取消的算法:打开选定数据源的“高级”选项卡,将焦点移至“VM 选项”字段。在VM选项字段中,您可以手动编辑取消算法的列表(对于选项
Djdk.tls.disabledAlgorithms)。启用 TLSv1:
TLSv1从Djdk.tls.disabledAlgorithms选项中删除。此操作将启用 TLS 1.0。启用 TLSv1.1:
TLSv1.1从Djdk.tls.disabledAlgorithms选项中删除。此操作将启用 TLS 1.1。启用 JDBC 驱动程序中的所有协议:从选项中删除
SSLv3,TLSv1,TLSv1.1,RC4,DES,MD5withRSA,DH keySize < 1024,EC keySize < 224,3DES_EDE_CBC,anon, ,NULL。此操作启用所有禁用的算法。include jdk.disabled.namedCurvesDjdk.tls.disabledAlgorithms
点击“测试连接”并查看修复是否有效。
您可以先尝试启用 TLSv1和启用 TLSv1.1。如果错误仍然出现,请尝试启用其他算法。

微软SQL服务器
在文件浏览器中,创建一个包含以下内容的custom.java.security文件:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \ DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \ include jdk.disabled.namedCurves请注意,TLSv1 已从禁用算法列表中删除。
打开数据源属性。您可以使用以下选项之一打开数据源属性:
在 数据库工具窗口(视图|工具窗口| 数据库)中,单击数据源属性图标
。
按。CtrlAltShift0S
选择您的 Microsoft SQL Server 数据源,然后单击高级选项卡,并将以下选项添加到VM 选项字段:
-Djava.security.properties=${PATH_TO_FILE?}/custom.java.security,其中是创建的custom.java.security${PATH_TO_FILE?}文件的路径。转到文件| 使缓存无效 | 重新启动即可。
尝试连接到您的 Microsoft SQL Server 数据源。

感谢您的反馈意见!