由于我的Debian服务器上最新的openssl升级,我的mysql客户端无法连接,并提供以下消息
SSL connection error: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
我猜这是为了防止Logjam攻击。
感谢https://weakdh.org/sysadmin.html我知道如何生成更强大的Diffie-Hellman参数。 但是,我没有find任何MySQLconfiguration选项来实际使用这些。
有人知道吗?
MySQL 5.7.6发行说明包含以下内容:
安全修复:由于LogJam问题( https://weakdh.org/),OpenSSL已经改变了openssl-1.0.1n及以上版本的Diffie-Hellman密钥长度参数。 OpenSSL在http://openssl.org/news/secadv_20150611.txt提供了详细的解释。 为了在MySQL中采用这种改变,在用于创buildDiffie-Hellman密钥的vio / viosslfactories.c中使用的密钥长度已经从512增加到2048位。 (Bug#77275,Bug#21221862,Bug#18367167,Bug#21307471)
由此看来,在5.7.6(永久性logjam?)之前,DH大小被硬编码为512位。 随着更高版本的OpenSSL拒绝这些弱密钥升级OpenSSL而不升级MySQL似乎破坏的东西。
我们通过强制使用非Diffie-Hellman SSL密码来解决连接问题。
通过我们的mysql 5.5.42 Linux客户端,我们成功地指定了--ssl-cipher=AES256-SHA命令行选项,正如在这个 bug报告中指定的一样。
然而,我们的(Java7)MySQL 5.1.35 jdbc客户端不喜欢这种密码,但是当我们在连接string中指定了enabledSSLCipherSuites=TLS_RSA_WITH_AES_128_CBC_SHA时,按照这里的build议工作。
因人而异