Как подключиться к Amazon RDS через SSL?

Я пытаюсь установить SSL-соединение с базой данных MySQL, размещенной через Amazon RDS. Я не понимаю, как подключиться.

По словам Амазонки документация, Мне нужно скачать сертификат 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?

17

Решение

Документация RDS фактически объясняет, почему это происходит, и предполагает, что вам даже не нужен сертификат CA:

Amazon RDS начал обновлять сертификаты SSL на всех экземплярах БД на
23 марта 2015 года, но не инициировал перезагрузку экземпляров. нет
эксплуатационные последствия или простои возникают, когда эти обновления
выполнено, и во многих ситуациях мы будем выполнять обновление в вашем
окно обслуживания. Amazon RDS не будет обновлять сертификат для
ваши экземпляры, если вы уже выполнили обновление. Также обратите внимание
что Amazon RDS не обновляет сертификаты в AWS GovCloud (США)
и Китай (Пекин) регионы.

Независимо от того, обновляете ли вы сертификат вручную или Amazon
RDS обновил сертификат, экземпляр БД должен быть перезагружен для
новый сертификат вступает в силу. Вы можете решить, когда вы хотите
перезагрузите экземпляр БД вручную, но вы должны обновить сертификат
и перезагрузите экземпляр перед старым сертификатом (rds-ca-2010)
истекает 3 апреля 2015 года.

Вы можете проверить центр сертификации, используемый вашей БД.
экземпляр с помощью консоли Amazon RDS. CA перечислен под
Раздел «Безопасность и сеть» вашего экземпляра БД. Если твой
экземпляр показывает rds-ca-2015, тогда новый сертификат был
успешно применяется. Вам все еще нужно перезагрузить экземпляр вашей базы данных
и обновите клиентское приложение, чтобы использовать новый сертификат SSL.

Если консоль Amazon RDS отображает ваш экземпляр CA как rds-ca-2010, то
новый сертификат не был применен к вашему экземпляру базы данных
еще. Используйте следующие инструкции для обновления SSL-сертификата на
ваши экземпляры базы данных.

Третий параметр по существу игнорируется клиентом. Я держу пари, установив третий параметр на NULLнет смысла звонить mysqli::ssl_set() если все параметры равны нулю.

Попробуйте полностью удалить этот вызов функции.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]