Herstellen einer Verbindung zu einem Remote-MySQL-Server mit SSL von PHP aus
Beim Versuch, eine Verbindung zu einem Remote-MySQL-Server mit SSL unter Verwendung des alten MySQL herzustellen Wenn Sie die Erweiterung (mysql_connect) verwenden, kann es sein, dass Benutzer auf die Fehlermeldung „SSL-Verbindungsfehler“ stoßen. Trotz der Konfiguration geeigneter SSL-Parameter in my.cnf, um sichere Terminalverbindungen zu ermöglichen, bleibt die PHP-Verbindung erfolglos.
Überlegungen zur PHP-Version
Der bereitgestellte Code verwendet die veraltete MySQL-Erweiterung , das nicht mehr aktiv entwickelt wird. Stattdessen wird empfohlen, die MySQLi-Erweiterung (MySQL Improved Extension) zu verwenden, die einen erweiterten Funktionsumfang bietet, einschließlich:
Verbesserte Konnektivität mit MySQLi
Der folgende Beispielcode zeigt, wie MySQLi für eine sichere SSL-Verbindung verwendet wird:
ini_set ('error_reporting', E_ALL); ini_set ('display_errors', '1'); error_reporting (E_ALL|E_STRICT); $db = mysqli_init(); mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $db->ssl_set('/etc/mysql/ssl/client-key.pem', '/etc/mysql/ssl/client-cert.pem', '/etc/mysql/ssl/ca-cert.pem', NULL, NULL); $link = mysqli_real_connect ($db, 'ip', 'user', 'pass', 'db', 3306, NULL, MYSQLI_CLIENT_SSL);
PDO_MYSQL-Alternative
Obwohl nicht Aufgrund der eingeschränkten SSL-Unterstützung in älteren PHP-Versionen ist PDO_MYSQL ideal und kann für SSL verwendet werden Verbindungen:
$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', array( PDO::MYSQL_ATTR_SSL_KEY =>'/etc/mysql/ssl/client-key.pem', PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/ssl/client-cert.pem', PDO::MYSQL_ATTR_SSL_CA =>'/etc/mysql/ssl/ca-cert.pem' )); $statement = $pdo->query("SHOW TABLES;"); $row = $statement->fetch(PDO::FETCH_ASSOC);
Es ist wichtig zu beachten, dass die SSL-Unterstützung in PDO für PHP-Versionen vor 5.3.8 möglicherweise nicht wie erwartet funktioniert.
Sollten weitere Probleme auftreten, konsultieren Sie bitte die Folgende Ressourcen für zusätzliche Anleitung:
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP über SSL eine sichere Verbindung zu einem Remote-MySQL-Server herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!