PhpStorm 2021.3 Help

由于 SSLHandshakeException 无法连接到数据库

由于Java 安全策略,TLS 1.0 和 TLS 1.1 协议的使用被禁用。当您尝试连接到仍接受这些协议的旧服务器时,此 Java 更新导致出现javax.net.ssl.SSLHandshakeException错误。

作为修复,您可以显式启用这些协议。请注意,这可能会导致漏洞问题。考虑使用更新版本的 TLS。

MySQL

  1. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

  2. 选择要启用禁用算法的数据源(例如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

  3. 在数据源的右窗格中,单击测试连接

  4. 在通知中,选择您要执行的操作。您可以在以下操作中进行选择:

    • 编辑禁用算法:打开所选数据源的高级选项卡并将焦点移至VM 选项字段。在VM 选项字段中,您可以手动编辑禁用算法的列表(用于Djdk.tls.disabledAlgorithms选项)。

    • 启用 nullTLSv1 :从Djdk.tls.disabledAlgorithms选项中删除。此操作将启用 TLS 1.0。

    • 启用 nullTLSv1.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

  5. 单击测试连接并查看修复是否有效。

    您可以先尝试Enable nullEnable null。如果错误仍然存​​在,请尝试启用其他算法。

    javax.net.ssl.SSLHandshakeException

微软 SQL 服务器

  1. 在文件浏览器中,创建一个包含以下内容的custom.java.security文件:

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

    请注意,TLSv1 已从禁用算法列表中删除。

  2. 数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标

  3. 选择您的 Microsoft SQL Server 数据源并单击Advanced选项卡并将以下选项添加到VM 选项字段:-Djava.security.properties=${PATH_TO_FILE?}/custom.java.security其中${PATH_TO_FILE?}是创建的custom.java.security文件的路径。

  4. 从主菜单中,选择文件 | 重新启动 IDE

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

最后修改:2022 年 2 月 9 日