SSL (Secure Sockets Layer) ist ein verschlüsseltes Protokoll, das eine sichere Verbindung zwischen einem Client und einem Server ermöglicht. In MySQL schützt die SSL-Einstellung Ihre Daten vor unbefugtem Zugriff und Abfangen.
Das Konfigurieren von SSL in MySQL umfasst mehrere Schritte. Zuerst müssen Sie Zertifikate für den Server und den Client erstellen. Dann müssen Sie MySQL so konfigurieren, dass diese Zertifikate verwendet werden. Danach können Sie die Verbindung testen und sicherstellen, dass SSL ordnungsgemäß funktioniert.
Hinweis: Um SSL in MySQL zu konfigurieren, benötigen Sie Zugriff auf den Server und Kenntnisse der Befehlszeile. Es wird empfohlen, die Datenbank vor Beginn des Prozesses zu sichern.
Der erste Schritt besteht darin, Zertifikate für den Server und den Client zu erstellen. Dazu müssen Sie die folgenden Befehle an der Eingabeaufforderung ausführen:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/mysql/ssl/server-key.pem -out /etc/mysql/ssl/server-cert.pem
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/mysql/ssl/client-key.pem -out /etc/mysql/ssl/client-cert.pem
Nachdem die Zertifikate erstellt wurden, ist der nächste Schritt, MySQL so zu konfigurieren, dass SSL verwendet wird. Um dies zu tun, öffnen Sie die MySQL-Konfigurationsdatei (normalerweise unter /etc/mysql/mysql).conf.d/mysqld.cnf) und fügen Sie die folgenden Zeilen hinzu:
Dann müssen Sie MySQL neu starten, damit die Änderungen wirksam werden. Nach dem Neustart können Sie die Verbindung über SSL testen, indem Sie den Befehl ausführen:
mysql -h localhost --ssl-ca=/etc/mysql/ssl/client-cert.pem --ssl-cert=/etc/mysql/ssl/client-cert.pem --ssl-key=/etc/mysql/ssl/client-key.pem
Wenn die Verbindung erfolgreich hergestellt wurde, ist die SSL-Konfiguration in MySQL korrekt.
Als Ergebnis der SSL-Konfiguration wird die Verbindung zwischen dem Client und dem MySQL-Server vor unbefugtem Zugriff und Datenabfangen geschützt, was eine erhöhte Sicherheit bietet.
Erforderliche Komponenten installieren und herunterladen
Um SSL in MySQL zu konfigurieren, müssen Sie die folgenden Komponenten installieren und herunterladen:
- openssl - eine Bibliothek, die für die Arbeit mit SSL verwendet wird. Stellen Sie sicher, dass OpenSSL bereits auf Ihrem Server installiert ist. Wenn nicht, führen Sie den Befehl sudo apt-get install openssl aus, um es zu installieren.
- libmysqlclient - MySQL-Clientbibliothek, die für die SSL-Unterstützung benötigt wird. Installieren Sie es, indem Sie den Befehl sudo apt-get install libmysqlclient-dev ausführen.
- CMake - ein Werkzeug, um ein Makefile zu generieren. Installieren Sie CMake, indem Sie den Befehl sudo apt-get install cmake ausführen.
Nachdem Sie die erforderlichen Komponenten installiert haben, können Sie mit der Konfiguration von SSL in MySQL fortfahren.
Generieren von Zertifikaten und Schlüsseln
Um eine SSL-Verbindung in MySQL zu konfigurieren, müssen Zertifikate und Schlüssel generiert werden. Dazu können Sie das OpenSSL-Dienstprogramm verwenden, das in den meisten Betriebssystemen zur Verfügung gestellt wird.
- Schritt 1. Öffnen Sie eine Eingabeaufforderung oder ein Terminal, und führen Sie den folgenden Befehl aus, um ein Verzeichnis zu erstellen, in dem die Zertifikate gespeichert werden sollen:
- mkdir /etc/mysql/ssl
- Schritt 2. Wechseln Sie mit dem Befehl zum erstellten Verzeichnis:
- cd /etc/mysql/ssl
- Schritt 3. Generieren Sie den Serverschlüssel mithilfe des folgenden Befehls:
- openssl genrsa -out server-key.pem 2048
- Schritt 4. Erstellen Sie mithilfe des folgenden Befehls ein selbstsigniertes Zertifikat (self-signed certificate):
- openssl req -new -x509 -sha256 -key server-key.pem -out server-cert.pem -days 3650 Während Sie diesen Befehl ausführen, werden Sie aufgefordert, einige Informationen über den Server einzugeben, einschließlich des Namens der Organisation und der Website.
- Schritt 5. Legen Sie die richtigen Berechtigungen für die Zertifikatdateien fest:
- chmod 600 server-key.pem chmod 600 server-cert.pem
Nachdem Sie diese Schritte ausgeführt haben, müssen Sie einen Serverschlüssel (Server-key) generieren.pem) und Zertifikat (Server-cert.pem).
Konfigurieren der MySQL-Konfigurationsdatei
Um SSL in Mysql zu konfigurieren, müssen Sie Änderungen an der mysqld-Konfigurationsdatei vornehmen.cnf.
1. Öffnen Sie die Datei mysqld.cnf mit einem beliebigen Texteditor.
2. Suchen Sie den Abschnitt [mysqld] und fügen Sie die folgenden Zeilen hinzu:
ssl-ca=/Pfad/zu/Zertifikat/ca.pem ist der Pfad zur Zertifikatdatei der zentralen Zertifizierungsstelle (CA). ssl-cert=/Pfad/zu/Zertifikat/server-cert.pem ist der Pfad zur Server-SSL-Zertifikatdatei. ssl-key=/Pfad/zu/Schlüssel/server-key.pem ist der Pfad zur privaten Schlüsseldatei des Servers.
3. Fügen Sie die folgenden Zeilen hinzu, um SSL zu aktivieren und den Pfad zu den Zertifikatdateien anzugeben:
ssl=ON - Aktiviert SSL. ssl-cipher=ALL - Verschlüsselungseinstellung. ssl-verify-server-cert=ON - Aktiviert die Überprüfung des Server-SSL-Zertifikats.
4. Speichern Sie die Änderungen in der mysqld-Datei.cnf und schließe es.
5. Starten Sie den Mysql-Server neu, um die vorgenommenen Änderungen anzuwenden.
Jetzt ist Ihr Mysql-Server für die Verwendung von SSL konfiguriert. Stellen Sie sicher, dass die Pfade zu den Zertifikats- und Schlüsseldateien korrekt angegeben sind, andernfalls kann der Server SSL nicht verwenden.
Einrichten von Berechtigungen und Autorisierung
Nachdem Sie ein SSL-Zertifikat in MySQL konfiguriert haben, ist es auch wichtig, Berechtigungen und Autorisierung für die sichere Kommunikation mit der Datenbank zu konfigurieren.
Zunächst müssen Sie einen Benutzer erstellen, der über ein SSL-Zertifikat auf die Datenbank zugreifen kann. Führen Sie dazu den folgenden Befehl aus:
CREATE USER 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль';
Ersetzen Sie 'Benutzername' durch den gewünschten Benutzernamen und 'Passwort' durch das Passwort, das Sie für die Autorisierung verwenden möchten.
Weisen Sie dem Benutzer anschließend Berechtigungen für die Datenbank zu, indem Sie den Befehl verwenden:
GRANT ALL PRIVILEGES ON база_данных.* TO 'имя_пользователя'@'localhost' REQUIRE SSL;
Hier ist 'Datenbank' der Name der bestimmten Datenbank, auf die Sie zugreifen möchten. Ersetzen Sie 'Benutzername' durch den von Ihnen erstellten Benutzernamen.
Danach müssen Sie die Berechtigungen aktualisieren, damit die Änderungen wirksam werden:
FLUSH PRIVILEGES;
Jetzt wurde ein Benutzer erstellt und ihm wurden Berechtigungen für den Zugriff auf die Datenbank über SSL zugewiesen.
Verwenden Sie beim Herstellen einer Verbindung mit einer Datenbank SSL-Zertifikate und -Einstellungen in Ihrer Clientanwendung, um eine sichere Autorisierung und sichere Datenübertragung zu gewährleisten.
Stellen Sie sicher, dass Sie SSL-Zertifikate und Schlüsseldateien in einer sicheren und sicheren Umgebung speichern, um unbefugten Zugriff auf sie zu verhindern.
Überprüfen und Aktivieren einer SSL-Verbindung
Nachdem Sie alle vorherigen Schritte ausgeführt haben, müssen Sie die Funktionsfähigkeit der SSL-Verbindung überprüfen und aktivieren.
Gehen Sie folgendermaßen vor:
- Führen Sie eine Eingabeaufforderung oder ein Terminal aus, um auf den MySQL-Server zuzugreifen.
- Geben Sie den folgenden Befehl ein, um zu überprüfen, ob die SSL-Verbindung ordnungsgemäß funktioniert:
SHOW VARIABLES LIKE 'have_ssl';
Wenn der Befehl "YES" als Ergebnis der Ausführung erhält, bedeutet dies, dass die SSL-Verbindung auf dem MySQL-Server aktiviert ist.
Wenn der Wert 'NO' lautet, ist die SSL-Verbindung nicht konfiguriert oder wird von Ihrer Version des MySQL-Servers nicht unterstützt. In diesem Fall finden Sie in der Dokumentation oder dem Serveradministrator weitere Informationen zum Konfigurieren von SSL für Ihre Version des MySQL-Servers.
Wenn der Wert 'DISABLED' lautet, bedeutet dies, dass die SSL-Verbindung zuvor aktiviert, aber deaktiviert wurde. In diesem Fall können Sie die SSL-Verbindung aktivieren, indem Sie die folgenden Schritte ausführen:
- Öffnen Sie die Datei my.cnf (für Linux) oder my.ini (für Windows) in einem Texteditor.
- Suchen Sie nach einem Abschnitt [mysqld]. Wenn Sie keine SSL-Zeichenfolge enthält, fügen Sie sie wie folgt hinzu:
ssl=ON - Speichern Sie die Datei und schließen Sie sie.
- Starten Sie den MySQL-Server neu, damit die Änderungen wirksam werden.
- Führen Sie nach dem Neustart den Befehl aus Schritt 2 erneut aus, um sicherzustellen, dass die SSL-Verbindung aktiviert ist.
Die Verbindung zum MySQL-Server ist jetzt sicher und mit SSL gesichert.