Я пытаюсь настроить соединение SSL с базой данных MySQL, размещенной через Amazon RDS. Я запутался, как подключиться.
Согласно документации Amazon мне нужно загрузить сертификат CA под названием "rds-ca-2015-root.pem" и использовать его в моем SSL-соединении. Я установил пользователя базы данных, с которым я подключаюсь, чтобы требовать SSL.
В PHP я включаю следующий код для инициирования соединения:
$mysqli = mysqli_init();
mysqli_options($mysqli, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
$mysqli->ssl_set(NULL, NULL, "/path/to/pem", NULL, NULL);
$mysqli->real_connect("host", "username", "password", "name", 3306, NULL, MYSQLI_CLIENT_SSL);
Однако, независимо от того, какой путь я укажу в качестве третьего параметра в ssl_set() (даже если путь недопустим), SSL-соединение успешно установлено. Третий параметр просто не может быть установлен в NULL.
Я проверяю это, выполнив этот запрос: SHOW STATUS LIKE 'Ssl_cipher';
. Вывод проверяет, что соединение зашифровано (Ssl_cipher = > AES256-SHA).
Может кто-нибудь объяснить мне, как это работает? Я смущен, почему соединение продолжает успешно работать, когда путь неверен. Как проверяется сервер RDS?