У меня есть экземпляр Amazon RDS с MySQL. Я создал учетную запись пользователя и настроил MySQL так, чтобы требовать использования SSL для всех входов в эту учетную запись.
Я хочу, чтобы клиент MySQL мог аутентифицировать сервер, чтобы гарантировать невозможность атак типа "человек посередине". У клиента командной строки MySQL есть опция для этого, а именно: --ssl-verify-server-cert. Однако когда я пытаюсь это сделать, я получаю следующее неинформативное сообщение об ошибке:
ERROR 2026 (HY000): SSL connection error
Итак, эта команда отлично работает:
mysql --host $RDS_host --user $username \ --password=$password \ --ssl-ca mysql-ssl-ca-cert.pem -e '\s'
Но если я добавлю опцию --ssl-verify-server-cert, Я получаю только что процитированное сообщение об ошибке. (Кстати, файл CA был получен из https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem.)
Есть ли способ заставить эту опцию работать?
С одной стороны, неудивительно, что этот вариант не работает, поскольку Документация Amazon (используйте правую рамку) заявляет следующее:
Поддержка SSL в Amazon RDS предназначена исключительно для шифрования соединения между вашим клиентом и вашим инстансом БД; на него не следует полагаться для аутентификации сервера.
Однако, с точки зрения Amazon, я не понимаю, в чем состоит трудность. Мне кажется, им было бы довольно легко настроить свой сервер, чтобы я мог использовать --ssl-verify-server-cert.