由于 SSLHandshakeException,无法连接到数据库
由于 Java 安全策略 ,已禁用 TLS 1.0 和 TLS 1.1 协议的使用。 此 Java 更新导致了在尝试连接仍然接受这些协议的旧服务器时发生的 javax.net.ssl.SSLHandshakeException 错误。
作为解决方案,您可以显式启用这些协议。 请注意,这可能会导致安全漏洞问题。 建议使用更新版本的 TLS。
MySQL
通过以下任一方式打开数据源属性:
在 数据库 工具窗口工具栏中,单击
数据源。
按 Shift+Enter。

选择一个要启用已禁用算法的数据源(例如, 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。在数据源的右侧窗格中,单击 测试连接。
在通知中,选择要执行的操作。 您可以从以下操作中进行选择:
编辑禁用的算法 :打开所选数据源的 高级 选项卡,并将焦点移至 虚拟机选项 字段。 在 虚拟机选项 字段中,您可以手动编辑禁用算法的列表(用于
Djdk.tls.disabledAlgorithms选项)。启用TLSv1 :从
Djdk.tls.disabledAlgorithms选项中移除TLSv1。 此操作将启用 TLS 1.0。启用TLSv1.1 :从
Djdk.tls.disabledAlgorithms选项中移除TLSv1.1。 此操作将启用 TLS 1.1。启用JDBC 驱动程序中的所有协议 :从
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。 如果仍然出现错误,请尝试启用其他算法。

Microsoft SQL Server
在文件浏览器中,创建一个包含以下内容的 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 已从禁用算法列表中移除。
通过以下任一方式打开数据源属性:
在 数据库 工具窗口工具栏中,单击
数据源。
按 Shift+Enter。

选择您的 Microsoft SQL Server 数据源,点击 高级 选项卡,并在 虚拟机选项 字段中添加以下选项:
-Djava.security.properties=${PATH_TO_FILE?}/custom.java.security,其中${PATH_TO_FILE?}是已创建的 custom.java.security 文件的路径。在主菜单中,转到 。

尝试连接到您的 Microsoft SQL Server 数据源。
