Как подключиться к экземпляру Amazon MySQL RDS через PHP через SSL

У меня есть экземпляр EC2, на котором запущен сайт WordPress. База данных WordPress находится в экземпляре RDS. Я хочу подключиться к БД через SSL.

Из того, что я читал, расширение MySQL, которое WordPress использует из коробки, не поддерживает SSL. Итак, я установил скрипт базы данных WordPress, который использует MySQLi, который поддерживает SSL.

Проблема, с которой я столкнулся, заключается в том, что Amazon предоставляет только один ключевой файл (подробнее), и все примеры, которые я могу найти с использованием MySQLi через SSL, включают как минимум 3 файла:

$db = mysqli_init();
$db->ssl_set('server-key.pem','server-cert.pem','cacert.pem',NULL,NULL); 

Я могу подключиться к своей базе данных через SSL из приложения командной строки mysql. Может ли кто-нибудь сказать мне, что мне нужно сделать, чтобы расширение PHP MySQLi работало, учитывая, что у меня есть только 1 файл?


person Dylan    schedule 14.01.2011    source источник
comment
Что произойдет, если вы пропустите эти параметры?   -  person profitphp    schedule 15.01.2011
comment
Обратите внимание: в документации Amazon указано, что трафик в пределах одного региона никогда не покидает сеть Amazon. Таким образом, это включает трафик между всеми зонами доступности в одном конкретном регионе.   -  person mr-euro    schedule 10.04.2012
comment
Кроме того, как назывался скрипт db WordPress, использующий MySQLi? Какова его ссылка? Спасибо!   -  person mr-euro    schedule 10.04.2012
comment
Прошло некоторое время, но я считаю, что следовал этим инструкциям, чтобы изменить wp-db.php: wordpress.org/support / topic / mysqli   -  person Dylan    schedule 11.04.2012


Ответы (2)


Оказалось, что это было менее сложно, чем я думал. Повышение уровня сообщения об ошибках обнаружило ошибку в моем коде, которую я не обнаружил. Использование ssl_set работает следующим образом:

$db = mysqli_init();
$db->ssl_set(NULL,NULL,'/path/to/mysql-ssl-ca-cert.pem',NULL,NULL);
$db->real_connect($dbhost,$dbuser,$dbpassword,$dbname);
person Dylan    schedule 14.01.2011

Попробуй это:

$db = mysqli_init();
$db->ssl_set(null, 'https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem', null, null, null);
person mfonda    schedule 14.01.2011