Wie kann ich SSL bei phpmyadmin einrichten, wenn mir der Server mit der mysql Instanz nicht zur Verfügung steht?

Hallo Leute,
Ich habe eine mysql Datenbank bei netcup, muss aber anderen Leuten phpmyadmin Zugriff auf die Datenbank geben. Bei netcups phpmyadmin kann man nur über das Kundenlogin einen token zum Zugriff erhalten, was bedeutet, dass ich meinen Kundenzugang weitergeben müsste, was ich aber nicht will.

Ich habe noch einen eigenen Webspace mit php - also habe ich mir gedacht, dass ich mir phpmyadmin dort installiere und dann eine sichere Verbindung mit den Datenbanknutzerdaten zur Datenbank herstelle, damit ich meinem Freund so eine phpmyadmin Instanz mit den Datenbankdaten bereitstellen kann.

Das Problem ist jetzt, dass mir phpmyadmin folgende Warnung anzeigt: SSL wird ohne Zertifizierungsstelle verwendet

Ich brauche also eine Möglichkeit, diese SSL Zertifizierungsstelle anzugeben. Da bin ich jetzt aber etwas überfragt und auch 2 Stunden googlen hat mir außer Kopfweh keine Erleuchtung beschert - Vielleicht habe ich auch nach dem falschen gesucht.

Ich würde mich sehr freuen, wenn mir jemand bei meinem Problem helfen könnte.

Vielen Dank schon mal im Vorraus,
Lukas - Astro

Hallo,
die Fehlermeldung läßt erahnen, daß Du mit selbstsignierten (engl. self-signed) Zertifikaten arbeitest. Die Zertifizierungsstelle (engl. CA, certificate authority) und der Inhaber des Zertifikats sind also identisch. Jetzt sollte es mit dem googlen klappen.

Um das „Problem“ zu vermeiden, kannst Du Dir bei den Großen ein Zertifikat besorgen. Mindestens eins, dem der Rechner, auf dem Dein Webspace läuft, vertraut. Beispielsweise gibt es kostenlose SSL-Zertifikate bei Let’s Encrypt.

Hi, danke für die Antwort. Ich weiß nicht, ob ich es mit einem self-signed-certificate zu tun hab oder nicht. Die Datenbank läuft nicht auf meinem Server sondern auf irgendeinem von netcup. Ich kann im Webspace Control Panel ne Datenbank erstellen und die ist dann über die IP erreichbar. Ich weiß, dass die IP ein SSL Zertifikat verwendet, ich kann es nur nicht so konfigurieren, dass meine phpmyadmin Instanz diesem vertraut. Wenn ich mir ein Zertifikat kaufen würde, könnte ich das nicht der mysql Instanz geben, da ich nur reinen Datenbankzugriff habe, nicht aber Backendzugriff auf den Server. Deswegen wollte ich wissen, ob es eine Möglichkeit gibt, das bereits existierende Zertifikat herunterzuladen (also den public key) und dieses Zertifikat dann so mit phpmyadmin einzurichten, dass meine Instanz diesem Zertifikat vertraut.

Hoffe, das hat mein Problem jetzt deutlicher gemacht.
Grüße,
Lukas

IPs verwenden keine Zertifikate. Was willst Du denn absichern? Die MySQL-Kommunikation (standardmäßig über Port 3306) oder den Zugriff per http(s) auf phpmyadmin?

Das ist eher ein https-Problem und sollte mit

einfach zu lösen sein.

Sichere Verbindung zu MySQL? Das ist dann eine andere Baustelle.

1 Like

Ah, ja, Du bist auf dem richtigen Weg. Zertifikat herunterladen, wenn’s geht im PEM-Format, dann nach /etc/ssl/certs/ schieben, dort noch:

$  ln -s cert-datei.pem `openssl x509 -hash -noout -in cert-datei.pem`.0

ausführen, fertig.

Falls das Zertifikat nicht im PEM-Format vorliegt, kann man es noch mittels:

$ openssl x509 -inform <URSPRUNGSFORMAT> -outform PEM -in DATEI -out cert-datei.pem

umwandeln.

Ich greife per IP auf die MySQL Datenbank zu und die Verbindung ist SSL verschlüsselt…
Ich möchte die Kommunikation zwischen phpmyadmin und mysql auf Port 3306 auf einem anderen Server absichern.

Ich kann kein SSL Zertifikat auf einen Server installieren, der mir nicht gehört.

Das ist genau das wonach ich frage.

Ich habe eine phpmyadmin Instanz auf www.example.com und möchte die Verbindung der phpmyadmin Instanz zur Datenbank 123.4.5.6:3306 auf einem Server, der mir nicht gehört! sichern. Die mysql Datenbank auf 123.4.5.6:3306 stellt ein SSL Zertifikat zur Verfügung, welches aber keine CA verwendet, weswegen es nicht verifiziert werden kann. Ich frage jetzt nach einem Weg, wie ich meiner phpmyadmin Instanz sagen kann, dass genau dieses Zertifikat vertrauenswürdig ist. Es gibt eine Einstellung dazu, die heißt $cfg[‚Servers‘][$i][‚ssl_ca‘] und $cfg[‚Servers‘][$i][‚ssl_ca_path‘] - Ich kenne aber keine Möglichkeit die Daten dort einzugeben, da ich das Zertifikat nicht besitze. Ich brauche dazu ja aber nur den öffentlichen Teil und nun ist meine Frage wie ich da dran komme.