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

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-19 18:43:031165Durchsuche

How Can I Securely Connect to a Remote MySQL Server Using SSL from PHP?

Herstellen einer Verbindung zu einem Remote-MySQL-Server mit SSL von PHP aus

Die gestellte Frage betrifft den Aufbau einer sicheren Verbindung zu einem Remote-MySQL-Server mithilfe von SSL von PHP. Das ursprüngliche Code-Snippet, das mysql_connect verwendet, führt zu einem „SSL-Verbindungsfehler“.

Das Problem verstehen

Bedenken Sie Folgendes, um der Grundursache auf den Grund zu gehen:

  • MySQLi (MySQL Improved Extension) bietet im Vergleich zum Vorgängermodell mysql_connect eine bessere Unterstützung für verschlüsselte Verbindungen Erweiterung.
  • Um die Sicherheit zu optimieren, sollten MySQL-Konfigurationen Folgendes enthalten:

    • [Client]

      • ssl-ca = /etc /mysql/ssl/ca-cert.pem
      • ssl-cert = /etc/mysql/ssl/client-cert.pem
      • ssl-key = /etc/mysql/ssl/client-key.pem
  • Sichere Kommunikation kann auch über konfiguriert werden PHP:

    • mssql.secure_connection = Ein in php.ini

MySQLi-Lösung

An Um SSL-Verbindungen mit MySQLi zu ermöglichen, nutzen Sie Folgendes Code:

$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-Lösung

Wenn die Einhaltung von PDO_MYSQL unerlässlich ist, verwenden Sie diesen Ansatz:

$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'
    )
);

Vorsicht

Beachten Sie, dass die SSL-Unterstützung für PDO in früheren PHP-Versionen eingeschränkt ist 5.3.8. Für eine optimale Funktionalität sollten Sie ein Upgrade auf eine neuere PHP-Version in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWie kann ich über SSL von PHP aus 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