Die Verbindung zu entfernten MySQL-server mit SSL von PHP
Ich versuche eine Verbindung zu entfernten MySQL-server mit SSL von PHP mit mysql_connect ():
$link = mysql_connect(
"ip",
"user",
"pass",
true,
MYSQL_CLIENT_SSL
)
Bekommen und Schlimmste Fehler überhaupt:
SSL connection error
Habe ich folgende Parameter in meine.cnf:
[client]
ssl-ca =/etc/mysql/ssl/ca-cert.pm
ssl-cert =/etc/mysql/ssl/client-cert.pem
ssl-key =/etc/mysql/ssl/client-key.pem
Also ich kann eine Verbindung zu mysql erfolgreich vom terminal nur mit
#mysql -h ip -u user -p
Also Verbindung zum mysql-server die Arbeit machen und soweit ich das verstehe problem ist in php/mysql Zusammenarbeit. Wahrscheinlich bin ich etwas fehlt params.
Kann ich leider nicht verwenden, mysqli lib, weil zu viele Karten für pdo_mysql.
Meine PHP Version 5.3.6-13ubuntu3.6
MySQL version 5.1.61
Auch ich habe Hinzugefügt
mssql.secure_connection = On
meinem php.ini
Hilfe wird dankbar sein!
wenn Sie MySQL verwenden, sollten Sie keine Einstellung
es gibt keine option namens
mysql.secure_connection = On
?es gibt keine option namens
mysql.secure_connection
in php.ini!!InformationsquelleAutor Alexey Bulash | 2012-03-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du mit dem alten MySQL-extension ("mysql_connect"), die nicht mehr in Entwicklung (Wartung nur). Da bist du mit PHP 5, die Sie verwenden möchten, können MySQLi, die MySQL Verbessert Erweiterung. Unter anderem, es hat eine objektorientierte Schnittstelle, Unterstützung für bereit/mehrere Anweisungen und verfügt über verbesserte debugging-Funktionen. Sie können mehr über die Umstellung auf MySQLi hier; mehr über die mysqli-Klasse selbst hier.
Ist hier einige Beispiel-code, die helfen können Sie loslegen:
Wenn PDO_MYSQL ist wirklich das, was Sie wollen, dann müssen Sie etwas tun, wie dieses:
Jedoch nur von neueren Versionen von PHP haben die SSL-Unterstützung für PDO und SSL-Optionen werden automatisch ignoriert (mindestens) version 5.3.8: siehe Fehlerbericht.
Glück!
InformationsquelleAutor Norbert
Ändern
[client]
header[mysqld]
. Sie müssen setup server-side-Zertifikate gibt, die nicht client-Seite.Sehen, eine vollständige Beispiel aus der MySQL-Dokumentation.
Siehe auch, ähnliche Frage: PHP MySQL SSL-Verbindungen
Server-Zertifikate ermöglichen es dem server, zu reagieren, um die SSL-Anforderungen, und Sie erfordern nicht den client ein Zertifikat haben. Jedes mal, wenn Sie eine Verbindung zu einer Website über HTTPS, verwenden Sie die server-Zertifikate, um sicherzustellen, dass Sie eine Verbindung zum richtigen server, und Sie sind mit dem Zertifikat für den öffentlichen Schlüssel für die Verschlüsselung.
Client-Zertifikate ermöglichen es einem server, den client zu authentifizieren.
In Ihrem Fall, Sie wollen server-Zertifikate. Sie möchten, installieren Sie die Zertifikate auf dem server (MySQL) und der client (PHP) wird in der Lage sein, um den server zu authentifizieren und verwenden den öffentlichen Schlüssel des Zertifikats für die Einrichtung der Verschlüsselung. Client-Zertifikate sind relativ selten.
Wenn Sie dies tun möchten, nutzen Sie client-Zertifikate verwenden, müssen Sie mysqli oder PDO.
Ich aktualisiert meine Antwort weiter erläutern Sie den Unterschied zwischen client-und server-Zertifikate.
Ihr link ist nun gebrochen.
InformationsquelleAutor Marcus Adams