У меня экземпляр EC2, на котором работает сайт WordPress. WordPress db находится в экземпляре RDS. Я хочу подключиться к db через SSL.
Из того, что я читал, расширение MySQL, которое WordPress использует из коробки, не поддерживает SSL. Итак, я установил сценарий db WordPress, который использует MySQLi, который поддерживает SSL.
Проблема, с которой я столкнулся, заключается в том, что Amazon поставляет только один ключевой файл ( больше информации ), и все примеры, которые я могу найти с помощью MySQLi over SSL, включают как минимум 3 файла:
$db = mysqli_init(); $db->ssl_set('server-key.pem','server-cert.pem','cacert.pem',NULL,NULL);
Я могу подключиться к моему db через SSL из приложения командной строки mysql. Может ли кто-нибудь сказать мне, что мне нужно сделать, чтобы заставить PHP-расширение MySQL работать, учитывая, что у меня есть только 1 файл?
Оказывается, это было менее сложно, чем я думал. Включение уровня отчетности об ошибках выявило ошибку в моем коде, которую я не поймал. Использование 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);
Попробуй это:
$db = mysqli_init(); $db->ssl_set(null, 'https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem', null, null, null);