MySQLi + PHP mit SSL Verschlüsseln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQLi + PHP mit SSL Verschlüsseln

    Hallo,

    Ich brauche mal hilfe für ne kleine Aufgabe... Es geht darum das ich die Verbindung zwischen PHP & MySQL verschlüsseln muss..

    Das ganze geht ja mit der MySQLi Schnittstelle und der Server ist nur lokal (neuste Xampp version mit OpenSSL, PHP 5.x, MySQL 5.x etc) auf Windows XP

    Mit dem Befehl

    show variables like 'have_openssl'

    bekomme ich ein "DISABLED"

    laut den Zettel dir ich bekommen hab, muss jetzt die bestehende Konfiguration geändert werden mit

    --with-openssl
    --with-vio

    und irgendwas neu Kompiliert werden
    Wie soll ich weiter vorgehen?

    Gruss Sebastian

    Edit: Also was ich herausgefunden habe ist, dass ich MySQL nicht kompilieren muss, weil es auf Disabled steht. Das bedeutet es ist vorhanden nur halt nicht im Einsatz. Als nächstes müsste ich die MySQL Config bearbeiten und den Schlüsel, das Zertifikat und die Authority-Datein einfügen. Problem ist nur das ich keinerlei *pem Datein in meinem XAMPP Ordner finde. Und auch kein OpenSSL im MySQL Ordner...
    Zuletzt geändert von Sebastian.J; 02.02.2007, 17:04.

  • #2
    Mal nen kleines Tutorial... (XAMPP und Windows)

    (Eher für Schüler sinnvoll oder Leute die das lokal mal testen wollen)

    In die my.cnf muss einfach nur unter [mysqld] "ssl" eingetragen werden. Danach mysql neu starten und wir bekommen bei

    PHP-Code:
    SHOW VARIABLES LIKE 'have_openssl' 
    ein Yes. (wenn es vorher DIABLED war).

    Jetzt noch in die my.cnf die Schlüssel, Zertifikat und die Certificate Authority-Datein eintragen. MySQL kann so die Konfigurationseinstellungen beim starten laden. Wer keine Certificate hat, kann sie sich erstellen (dafür gibts bestimmt schon einige Tutorials).

    So könnte das aussehen in der my.cnf

    PHP-Code:

    [client]
    ssl-ca "C:/xampp/xampp/mysql/ssl/cacert.pem"
    ssl-cert "C:/xampp/xampp/mysql/ssl/client-cert.pem"
    ssl-key "C:/xampp/xampp/mysql/ssl/client-key.pem"

    [mysqld]
    ssl
    ssl
    -ca "C:/xampp/xampp/mysql/ssl/cacert.pem"
    ssl-cert "C:/xampp/xampp/mysql/ssl/server-cert.pem"
    ssl-key "C:/xampp/xampp/mysql/ssl/server-key.pem" 
    Jetzt könnten z.B SSL Accounts erstellt werden (Stichwort GRANT) => somit könnte man seinen Usern aufzwingen eine SSL Verbindung zu nutzen!

    Jetzt noch ein Beispiel, wie ein Eintrag in die DB aussehen könnte (MySQLi Schnittstelle)

    PHP-Code:

    $db 
    mysqli_init();
    $db->options(MYSQLI_READ_DEFAULT_FILE'C:/xampp/xampp/mysql/bin/my.cnf');
    $db->real_connect('localhost','root','','test');

    $db->ssl_set('C:/xampp/xampp/mysql/ssl/server-key.pem',
                 
    'C:/xampp/xampp/mysql/ssl/server-cert.pem',
                 
    'C:/xampp/xampp/mysql/ssl/cacert.pem',
                 
    NULL,
                 
    NULL);       

    $db->real_connect('localhost','root','','test');

    $stmt $db->prepare("INSERT INTO test (name,pass) VALUES (?, ?)");

    $var1="sebastian";
    $var2="123rtz5";
    $stmt->bind_param('ss'$var1$var2);
    $stmt->execute();

    printf("Datensatz sicher per SSL eingetragen!");
    $stmt->close(); 
    Zuletzt geändert von Sebastian.J; 25.02.2007, 11:34.

    Kommentar

    Lädt...
    X