如何使用 MariaDB Connector/J 与 MySQL 建立 SSL 连接?
How to make an SSL connection to MySQL using MariaDB Connector/J?
我正在使用 MySQL 5.7.10,启用了 SSL 并根据 these instructions. My Java 7 application uses a MariaDB Connector/J 生成了证书,并且在 JDBC URL:
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,问题可以通过以下方式解决:
- 正在升级到 Java 8(或更高版本)。
- 正在降级到 MySQL 5.7.5(或更低版本)。
- 不包括 Diffie-Hellman (DH) 密码。
(1) 不是我正在处理的项目的选项。 (2) 似乎具有限制性,并且会阻止访问未来的 MySQL 改进。 (3) 似乎是最有前途的:我已经验证它确实适用于 MySQL connector/J 但不幸的是它的 GPL 许可阻止我在我的项目中使用它。
MariaDB Connector/J 是否具有 属性 与 enabledSSLCipherSuites
等效的功能,或者是否有任何其他方法可以防止它在连接时使用 DH 密码?
请求的功能选项现已在 MariaDB Connector/J 版本 1.5.0-RC 中实现:
enabledSslProtocolSuites Force TLS/SSL protocol to a specific set of
TLS versions (comma separated list). Example : "TLSv1, TLSv1.1,
TLSv1.2" Default: TLSv1, TLSv1.1. Since 1.5.0
enabledSslCipherSuites Force TLS/SSL cipher (comma separated list).
Example : "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" Default: use JRE ciphers. Since
1.5.0
(见问题下方的评论,release notes and this Jira ticket。)
我正在使用 MySQL 5.7.10,启用了 SSL 并根据 these instructions. My Java 7 application uses a MariaDB Connector/J 生成了证书,并且在 JDBC URL:
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,问题可以通过以下方式解决:
- 正在升级到 Java 8(或更高版本)。
- 正在降级到 MySQL 5.7.5(或更低版本)。
- 不包括 Diffie-Hellman (DH) 密码。
(1) 不是我正在处理的项目的选项。 (2) 似乎具有限制性,并且会阻止访问未来的 MySQL 改进。 (3) 似乎是最有前途的:我已经验证它确实适用于 MySQL connector/J 但不幸的是它的 GPL 许可阻止我在我的项目中使用它。
MariaDB Connector/J 是否具有 属性 与 enabledSSLCipherSuites
等效的功能,或者是否有任何其他方法可以防止它在连接时使用 DH 密码?
请求的功能选项现已在 MariaDB Connector/J 版本 1.5.0-RC 中实现:
enabledSslProtocolSuites Force TLS/SSL protocol to a specific set of TLS versions (comma separated list). Example : "TLSv1, TLSv1.1, TLSv1.2" Default: TLSv1, TLSv1.1. Since 1.5.0
enabledSslCipherSuites Force TLS/SSL cipher (comma separated list). Example : "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" Default: use JRE ciphers. Since 1.5.0
(见问题下方的评论,release notes and this Jira ticket。)