Warning about SSL connection when connecting to MySQL database
Предупреждение о SSL-соединении при подключении к базе данных MySQL
С помощью двух приведенных ниже классов я пытался подключиться к базе данных MySQL. Однако я всегда получаю эту ошибку:
Ср. 09 дек. 22:46:52 CET 2015 ПРЕДУПРЕЖДЕНИЕ: Установление SSL-соединения без проверки личности сервера не рекомендуется. Согласно требованиям MySQL 5.5.45+, 5.6.26+ и 5.7.6+, SSL-соединение должно быть установлено по умолчанию, если параметр explicit не установлен. Для соответствия существующим приложениям, не использующим SSL, свойству verifyServerCertificate присвоено значение 'false'. Вам нужно либо явно отключить SSL, установив useSSL=false, либо установить useSSL= true и предоставить truststore для проверки сертификата сервера.
Значения по умолчанию для инициирования подключения к серверу MySQL были изменены в недавнем прошлом, и (из беглого просмотра самых популярных вопросов и ответов по stack overflow) новые значения вызывают много путаницы. Хуже всего то, что стандартный совет, похоже, заключается в полном отключении SSL, что является своего рода катастрофой в процессе создания.
Теперь, если ваше соединение действительно не подключено к сети (только localhost) или вы работаете в непроизводственной среде без реальных данных, то будьте уверены: отключение SSL не повредит, если включить опцию useSSL=false.
Для всех остальных требуется следующий набор опций, чтобы заставить SSL работать с сертификатом и проверкой хоста:
useSSL= true
sslMode=VERIFY_IDENTITY
trustCertificateKeyStoreUrl=файл:path_to_keystore
trustCertificateKeyStorePassword=пароль
В качестве дополнительного бонуса, поскольку вы уже играете с опциями, также просто отключить слабые протоколы SSL:
enabledTLSProtocols=TLSv1.2
Пример
Итак, в качестве рабочего примера вам нужно выполнить следующие общие шаги:
Сначала убедитесь, что у вас есть действительный сертификат, сгенерированный для узла сервера MySQL, и что сертификат CA установлен на клиентском узле (если вы используете самоподписанный, то вам, вероятно, нужно будет сделать это вручную, но для популярных общедоступных центров сертификации он уже будет там).
Затем убедитесь, что хранилище ключей java содержит все сертификаты CA. В Debian / Ubuntu это достигается путем запуска:
Затем, наконец, обновите строку подключения, чтобы включить все необходимые параметры, которые в Debian / Ubuntu были бы чем-то вроде (адаптируйте по мере необходимости):
Но в конфигурации xml, когда вы упоминаете & sign, IDE показывает приведенную ниже ошибку:
Ссылка на объект "useSSL" должна заканчиваться разделителем ';'.
И затем вы должны явно использовать & вместо &, который будет определен как & by xml после этого в xml вы должны указать URL-адрес в конфигурации xml следующим образом: