我正在使用启用了SSL的MySQL 5.7.10,并根据these instructions生成证书。我的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)不是我正在进行的项目的选项。 (2)似乎是限制性的,会阻止访问未来的MySQL改进。 (3)似乎最有希望的:我已经证实它确实可以与MySQL connector/J一起使用但不幸的是它的GPL许可证使我无法在我的项目中使用它。
MariaDB Connector / J是否具有与enabledSSLCipherSuites
等效的属性,还是有其他方法可以阻止它在连接时使用DH密码?
答案 0 :(得分: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
(请参阅问题下方的评论,release notes和this Jira ticket。)