Рейтинг:3

Не удается подключиться к Amazon RDS с помощью TLSv1.2

флаг in

Я настроил новую машину с Ubuntu 20 и обнаружил, что больше не могу подключаться к своим базам данных RDS.

Приложение spring-boot, которое должно было подключаться к среде разработки, выдает следующее исключение:
javax.net.ssl.SSLHandshakeException: нет подходящего протокола (протокол отключен или наборы шифров не подходят)

Поэтому я выкопал рабочее место mySql и попробовал с ним. Это привело к этой ошибке:
ssl_choose_client_version: неподдерживаемый протокол

Поиск этого показал мне, что в Ubuntu 20 TLSv1.2 установлен как минимальная версия TLS, и что эта ошибка возникает, если ваш сервер MySQL не поддерживает ее (отсюда: https://askubuntu.com/questions/1193629/why-mysql-workbench-8-x-errors-out-with-an-ssl-connection-error-choose-client-v). Я попробовал workbench с отключенным SSL, и, конечно же, он смог установить соединение.

Очевидная проблема в том, что это Amazon RDS... TLS 1.2 — единственная версия, которая не мочь быть отключен, так как это версия, используемая внутри, как указано здесь: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Ciphers.html

Так что на самом деле проблем быть не должно. Я начал сомневаться, действительно ли проблема в версии TLS. Но поскольку у меня не было других зацепок, я следовал поваренной книге в ответе здесь, чтобы перенастроить мой локальный openssl, чтобы разрешить минимальную версию TLS 1 и понизить уровень безопасности: https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-уровень безопасности

И разве вы не знаете, Workbench теперь подключен с SSL, установленным на обязательный. Spring-Boot по-прежнему не работает, я думаю, мне нужно настроить это где-то еще, чтобы получить заметку. Но вместо того, чтобы тратить на это время, я лучше решу настоящий Проблема заключается в том, что я не могу подключиться через TLSv1.2, хотя, насколько я могу судить, я действительно должен это сделать. Это было бы гораздо предпочтительнее, чем понижение уровня безопасности. Я попытался обновить сертификат базы данных на случай, если это может быть проблемой, но консоль управления не обнаружила ничего плохого в сертификате и, по-видимому, не позволит мне заменить его, если мне это не нужно. Так что у меня немного нет идей о том, что попробовать дальше.

флаг in
Связано: https://stackoverflow.com/questions/67246010/the-server-selected-protocol-version-tls10-is-not-accepted-by-client-preferences
Рейтинг:2
флаг in

Оказывается, поддержка TLS зависит от конкретной версии ядра базы данных, которую вы используете в RDS. Aurora mySQL 5.6 поддерживает только TLSv1.0 до версии 1.23.1, после чего становятся доступны TLSv1.1 и 1.2. Наша версия была 1.22.something, поэтому мне пришлось обновить движок.

Даже тогда это не сработает, потому что Ubuntu 20 также обеспечивает минимальную длину ключа dhe в 2048 бит, чего просто не обеспечивает Aurora mysql 5.6, и, насколько я могу судить, это нельзя изменить. Вы найдете документацию по параметрам базы данных, которые можно использовать для изменения длины ключа diffie-helman, но оказывается, что они предназначены только для SqlServer, а не для MySQL. Итак, вам все равно нужно внести изменения в свой openssl.cnf, как описано в принятом ответе здесь: https://askubuntu.com/questions/1233186/ubuntu-20-04-how-to-set-lower-ssl-уровень безопасности Это изменит ваш SECLEVEL на 1, поэтому openssl будет принимать более короткие ключи DHE.

Даже тогда мои приложения с весенней загрузкой не подключались, хотя workbench теперь подключался. Это связано с тем, что JDBC не сообщает серверу, что он может использовать TLSv1.2. хотя вполне может (странное решение), поэтому сервер никогда не попытается отправить рукопожатие 1.2, даже если бы мог.

Чтобы сообщить JDBC, что он действительно использует TLSv1.2, вы должны добавить его в строку подключения:

jdbc:myslq://<host>/<db>?enabledTLSProtocols=TLSv1.2

Теперь все подключается.

Я бы хотел, чтобы Aurora предоставила более длинный ключ, а не снижала безопасность Ubuntu, но, похоже, это невозможно. Если кто-нибудь знает об одном, пожалуйста, дайте мне знать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.