Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

DDD
Freigeben: 2024-11-23 22:48:10
Original
751 Leute haben es durchsucht

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage