После последнего обновления openssl на моем сервере Debian мои клиенты mysql не могут подключиться и выдают следующее сообщение
SSL connection error: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
Я думаю, это для предотвращения Затор атаки.
Благодаря https://weakdh.org/sysadmin.html Я знаю, как создать более сильные параметры Диффи-Хеллмана. Однако я не нашел какой-либо опции конфигурации MySQL, чтобы ее действительно использовать.
Кто-нибудь знает?
Примечания к выпуску MySQL 5.7.6 содержат следующее:
Исправление безопасности: Из-за проблемы с LogJam (https://weakdh.org/), OpenSSL изменил параметры длины ключа Диффи-Хеллмана для openssl-1.0.1n и выше. OpenSSL предоставил подробное объяснение на http://openssl.org/news/secadv_20150611.txt. Чтобы принять это изменение в MySQL, длина ключа, используемого в vio / viosslfactories.c для создания ключей Диффи-Хеллмана, была увеличена с 512 до 2048 бит. (Ошибка № 77275, Ошибка № 21221862, Ошибка № 18367167, Ошибка № 21307471)
Из этого следует, что размер DH был жестко запрограммирован на 512 бит в MySQL до версии 5.7.6 (постоянное затор?). Поскольку более поздние версии OpenSSL отклоняют эти слабые ключи, обновление OpenSSL без обновления MySQL, похоже, ломает вещи.
Мы смогли решить наши проблемы с подключением, заставив использовать SSL-шифр, отличный от Diffie-Hellman.
С нашим клиентом mysql 5.5.42 Linux мы успешно указали --ssl-cipher=AES256-SHA
параметр командной строки, как указано в этот отчет об ошибке.
Нашему (Java7) клиенту jdbc MySQL 5.1.35 этот шифр не понравился, но он работал, когда мы указали enabledSSLCipherSuites=TLS_RSA_WITH_AES_128_CBC_SHA
в нашей строке подключения, как рекомендуется Вот.
YMMV