【问题标题】:How to make an SSL connection to MySQL using MariaDB Connector/J?如何使用 MariaDB Connector/J 与 MySQL 建立 SSL 连接?
【发布时间】:2016-09-20 12:18:09
【问题描述】:

我正在使用启用了 SSL 并根据these instructions 生成证书的 MySQL 5.7.10。我的 Java 7 应用程序使用 MariaDB Connector/J 并且在 JDBC URL 中启用了 SSL:

jdbc:mysql://dbservername:3306/dbname?useSSL=true&trustServerCertificate=false

但连接失败:

Caused by: java.lang.RuntimeException: Could not generate DH keypair
...
Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of
64, and can only range from 512 to 1024 (inclusive)

根据this blog post,问题可以通过以下方式解决:

  1. 升级到 Java 8(或更高版本)。
  2. 降级到 MySQL 5.7.5(或更低版本)。
  3. 不包括 Diffie-Hellman (DH) 密码。

(1) 不是我正在从事的项目的一个选项。 (2) 似乎具有限制性,并且会阻止访问未来的 MySQL 改进。 (3) 似乎是最有前途的:我已经验证它确实适用于MySQL connector/J,但不幸的是它的 GPL 许可证阻止我在我的项目中使用它。

MariaDB Connector/J 是否具有与 enabledSSLCipherSuites 等效的属性,或者是否有任何其他方法可以防止它在连接时使用 DH 密码?

【问题讨论】:

标签: java mysql security ssl mariadb


【解决方案1】:

请求的功能选项现已在 MariaDB Connector/J 版本 1.5.0-RC 中实现:

enabledSslProtocolSuites 将 TLS/SSL 协议强制为一组特定的 TLS 版本(逗号分隔列表)。示例:“TLSv1、TLSv1.1、 TLSv1.2" 默认值:TLSv1、TLSv1.1。从 1.5.0 开始

enabledSslCipherSuites 强制 TLS/SSL 密码(逗号分隔列表)。 示例:“TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" 默认值:使用 JRE 密码。由于 1.5.0

(请参阅问题下方的 cmets,release notesthis Jira ticket。)

【讨论】:

    猜你喜欢
    • 2018-06-24
    • 2019-12-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多