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();