2011-01-14 13 views
3

Ich habe eine EC2-Instanz, auf der eine WordPress-Site läuft. Die WordPress-Datenbank befindet sich in einer RDS-Instanz. Ich möchte eine Verbindung zur db über SSL herstellen.So stellen Sie eine Verbindung zu einer Amazon MySQL RDS-Instanz über PHP über SSL her

Von dem, was ich gelesen habe, unterstützt die MySQL-Erweiterung, die WordPress aus der Box verwendet, SSL nicht. Also, ich habe ein WordPress-DB-Skript installiert, das MySQLi verwendet, das SSL unterstützt.

Das Problem, das ich gestoßen ist, dass Amazon eine Schlüsseldatei (more info) nur liefert, und alle Beispiele kann ich mit MySQLi über SSL umfassen mindestens drei Dateien:

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

ich in der Lage bin zu verbinden zu meiner db über SSL von der mysql Kommandozeilen-App. Kann mir jemand sagen, was ich tun muss, um PHPs MySQLi-Erweiterung zum Laufen zu bringen, da ich nur die 1-Datei habe?

+0

Was passiert, wenn Sie diese Parameter überspringen? – profitphp

+0

Nur ein Hinweis, Amazon docs Staat, dass innerhalb der gleichen Region Verkehr Netzwerk von Amazon nie verlässt. Dies umfasst den Datenverkehr zwischen allen Availability Zones innerhalb einer bestimmten Region. –

+0

Wie war der Name/Link des "WordPress db-Skripts, das MySQLi verwendet"? Vielen Dank! –

Antwort

4

stellte sich heraus, das war weniger kompliziert, als ich dachte. Beim Aufdecken der Fehlerberichterstattungsstufe wurde ein Fehler in meinem Code entdeckt, den ich nicht bemerkt hatte. Die Verwendung von ssl_set funktioniert folgendermaßen:

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

Try this:

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