Heim >Datenbank >MySQL-Tutorial >Wie kann ich in PHP über SSL eine sichere Verbindung zu einem Remote-MySQL-Server herstellen?

Wie kann ich in PHP über SSL eine sichere Verbindung zu einem Remote-MySQL-Server herstellen?

DDD
DDDOriginal
2024-11-23 22:48:10812Durchsuche

How to Securely Connect to a Remote MySQL Server via SSL in PHP?

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:

  • Objektorientierte Schnittstelle
  • Unterstützung für vorbereitete und mehrere Anweisungen
  • Verbesserte Debugging-Funktionen

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:

  • [PHP MySQLi SSL-Verbindung Beispiel](https://www.digitalocean.com/community/tutorials/how-to-use-ssl-to-secure-mysql-connections-in-php)
  • [PDO MySQL SSL-Konfiguration]( https://stackoverflow.com/questions/30075513/pdo-ssl-connection-fails)

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn