Для удаленного подключения MYSQL требуется SSL

Я хочу прояснить для себя некоторую информацию, касающуюся удаленных SSL-подключений к MYSQL. В частности, как только у меня есть настройка MYSQL для включения SSL и удаленного пользователя, которому требуется SSL.

Вот как я удаленно подключаюсь (командная строка) к MYSQL с пользователем, которому требуется SSL:

mysql -uMyUserName -p -h192.168.5.5 --ssl-ca /path/to/ca.pem


Мой вопрос: Почему я должен предоставлять файл ca.pem в качестве клиента?


Вот шаги, которые я предпринял для установки mysql на сервер и настройки удаленного доступа (Ubuntu):

Шаги по включению SSL для MYSQL

1) Получите мой сертификат центра сертификации, сертификат базы данных, ключ базы данных

  • ca.pem (сертификат центра сертификации)
  • dbcert.pem (сертификат базы данных)
  • dbkey.pem (ключ базы данных)

2) Добавьте следующие строки в /etc/mysql/my.cnf под [mysqld]

ssl-ca = / путь / к / ca.pem
ssl-cert = / путь / к / dbcert.pem
ssl-key = / путь / к / dbkey.pem

введите описание изображения здесь

3) Перезапустите mysql и подтвердите, что ssl включен, войдя в систему и набрав следующее:

показать такие переменные, как '% ssl%';


введите описание изображения здесь


Настройка удаленного подключения, требующего SSL

1) Закомментируйте следующие строки в /etc/mysql/my.cnf

# привязка-адрес
# пропустить-сеть

2) Войдите в mysql и предоставьте пользователю доступ, в данном случае, к каждой базе данных.

ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА . для 'USERNAME' @ '%' ИДЕНТИФИЦИРОВАНО 'ПАРОЛЕМ' ТРЕБУЕТСЯ SSL


На данный момент у меня есть настройка MYSQL, чтобы включить SSL, и у меня есть удаленный пользователь, которому потребуется SSL для входа в систему. Я могу войти в систему из удаленной командной строки, но мне нужно указать --ssl-ca.

Почему я должен предоставлять ssl-ca от клиента? Есть ли способ сделать это, чтобы мне не приходилось делать это?

Я был бы очень признателен за понимание здесь.

Заранее спасибо.


person jlents    schedule 03.09.2015    source источник


Ответы (1)


В отличие от вашего обычного веб-браузера, инструмент командной строки, такой как mysql, не имеет встроенного списка центров сертификации. Браузеры поставляются со встроенным списком центров сертификации, и вы безоговорочно доверяете им (знаете вы об этом или нет).

Когда вы используете mysql для входа на сервер MySQL, поддерживающий шифрование, этот сервер предоставит вам общедоступную часть сертификата. Чтобы завершить безопасное рукопожатие, ваш клиент должен проверить, что сертификат сервера подписан доверенным центром сертификации. В противном случае он должен будет сказать: «Эй, это похоже на правильно сформированный сертификат, но я никогда не слышал, чтобы ЦС подписывал его».

Для Hibernate / JDBC / TLS небольшая работа с поисковой системой дает некоторые полезные предложения. Все дело в настройке правильных свойств в вашей конфигурации.

http://razorsql.com/articles/mysql_ssl_jdbc.html

Как настроить Перевести в спящий режим, чтобы использовать SSL для связи с сервером БД?

person O. Jones    schedule 03.09.2015
comment
Для меня это имеет 100% смысл. Я отмечу это как принятый ответ. Это приводит к моему последующему вопросу о согласовании удаленного соединения с Java с использованием спящего режима. Я не уверен, что вы можете мне здесь помочь или мне стоит перепостить его, но я пытаюсь удаленно подключиться (требуя SSL) через Java. Однако я не могу понять, как предоставить центр сертификации для конфигурации гибернации ... - person jlents; 03.09.2015