Wie man SSL-Zertifikate für den DataSunrise-Datenbankproxy einrichtet
Die meisten Datenbanken unterstützen die Überprüfung der Serveridentität mittels Zertifikaten. So wird beim Verbindungsaufbau zu einem Server ein Verifikationsprozess durchgeführt: Wenn das vom Server empfangene Zertifikat authentisch ist, wird eine Verbindung hergestellt; andernfalls wird dies als „Man-in-the-Middle“-Angriff betrachtet. Standardmäßig kann diese Serverzertifikatsprüfung je nach DBMS aktiviert oder deaktiviert werden. Wir empfehlen jedoch, die Zertifikatsprüfung zu aktivieren, um Ihre Daten zu schützen.
Bei einer direkten Verbindung zwischen einer Datenbank und einer Clientanwendung funktioniert eine Zertifikatsprüfung wie folgt:
Client(CA-Zertifikat) <---> Server(Server-Zertifikat, Server-Schlüssel)
- CA-Zertifikat – Wurzelzertifikat der Zertifizierungsstelle,
- Server-Schlüssel – privater Schlüssel des Servers
- Server-Zertifikat – vom CA unterschriebenes Serverzertifikat.
Werfen wir einen Blick auf MySQL als Beispiel.
Der MySQL-Client kennt das CA-Zertifikat. Auf der Serverseite gibt es Server-Zertifikat und Server-Schlüssel. Der Client kann den SSL-Modus aktivieren. Der Standardwert ssl_mode=prefer bedeutet, dass die Serverzertifikatsauthentifizierung deaktiviert ist. Außerdem kann der Parameter ssl_mode auf:
- Verify-CA (Ich möchte meine Daten verschlüsseln und nehme den Overhead in Kauf. Ich möchte sicherstellen, dass ich mich mit einem vertrauenswürdigen Server verbinde)
- Verify-Identity (Ich möchte meine Daten verschlüsseln und nehme den Overhead in Kauf. Ich möchte sicherstellen, dass ich mich mit einem vertrauenswürdigen Server verbinde und dass es der angegebene Server ist)
Unten steht eine Beispielzeichenfolge für die Herstellung einer direkten Verbindung mit Zertifikatsprüfung:
$mysql --host=localhost --port=3306 --user=root --ssl-ca=ca.pem --ssl_mode=VERIFY_CA
[root@3306][(none)]>
Das folgende Diagramm zeigt den Prozess der Herstellung einer Verbindung mit aktivierter DataSunrise-Zertifikatsprüfung:
Datasunrise implementiert die End-to-End-Verschlüsselungsfunktionalität in einer Client-Proxy-Server-Kette.
Sehen Sie sich das obige Diagramm an: Es gibt zwei Verbindungen. Die erste Verbindung wird zwischen einem Client und einem DataSunrise-Proxy hergestellt. Die DataSunrise-Proxy-SSL-Konfiguration wird für die Verbindung verwendet. Um diese einzurichten, benötigen Sie Proxy-Schlüssel und Proxy-Zertifikat, die vom CA-Zertifikat erstellt und unterzeichnet wurden. Dies ermöglicht Ihnen sicherzustellen, dass Sie sich mit einem echten DataSunrise-Proxy verbinden.
Die zweite Verbindung wird zwischen einem DataSunrise-Proxy und einem Datenbankserver hergestellt und verwendet ihre eigene SSL-Konfiguration. Der DataSunrise-Proxy fungiert hier als Clientanwendung und kann auch eine Verbindung zu einem authentischen Server überprüfen.
Bitte beachten Sie, dass die Zertifikatsauthentifizierung eine zusätzliche Option für die SSL-Verschlüsselung ist und nicht funktioniert, wenn die SSL-Verschlüsselung deaktiviert ist.
Es ist auch wichtig, dass der DataSunrise-Proxy ein transparenter Proxy ist und den vom Client und dem Datenbankserver verhandelten Verschlüsselungsmodus unterstützt. Dies bedeutet, dass es unmöglich ist, nur eine Verbindung in der Kette zu verschlüsseln. Der DataSunrise-Proxy kann keinen verschlüsselten Datenverkehr von einem Ende empfangen und unverschlüsselten Datenverkehr an ein anderes Ende senden und umgekehrt.
Hier sind die Schritte, die Ihnen ermöglichen, eine SSL-Zertifikatsprüfung in DataSunrise einzurichten:
Erste Verbindung
1. Navigieren Sie zu Konfiguration → SSL-Schlüsselgruppen und klicken Sie auf Gruppe hinzufügen
2. Geben Sie Ihr Proxy-Zertifikat und Ihren Proxy-Schlüssel in die entsprechenden Felder ein. Dazu müssen Sie den Proxy-Typ wählen.
3. Navigieren Sie zu Konfiguration → Datenbanken. Öffnen Sie Ihre Datenbank-Instanzseite und klicken Sie auf das „Stift“-Symbol, um die Proxy-Einstellungen zu bearbeiten.
4. Wählen Sie Ihre SSL-Schlüsselgruppe in der Proxy-Schlüssel-Dropdown-Liste aus und speichern Sie die Einstellungen.
Zweite Verbindung
1. Navigieren Sie zu Konfiguration → SSL-Schlüsselgruppe und klicken Sie auf Gruppe hinzufügen. Wählen Sie den Schnittstellen-Typ und geben Sie Ihr CA-Zertifikat in das CA-Feld ein.
2. Navigieren Sie zu Konfiguration → Datenbanken, wählen Sie Ihre Instanz aus und klicken Sie auf das „Stift“-Symbol, um die Schnittstelleneinstellungen zu bearbeiten
3. Sie müssen die in Schritt 1 erstellte Gruppe angeben, den Modus zur Zertifikatsüberprüfung auswählen und die Einstellungen speichern.
- Nicht überprüfen – Zertifikatsprüfung wird nicht durchgeführt,
- Nur CA überprüfen – das CA-Zertifikat des Servers wird überprüft,
- CA und Identität überprüfen – das CA-Zertifikat des Servers und der Hostname des Servers im Zertifikat werden überprüft.
Nachdem Sie die obigen Schritte abgeschlossen haben, löst das Verbinden mit einem Proxy die Zertifikatsprüfung für die beiden Server aus und eliminiert die Möglichkeit von MITM-Angriffen.
$mysql --host=localhost --port=3307 --user=root --ssl-ca=CA_Proxy.crt --ssl_mode=VERIFY_IDENTITY
[root@3307][(none)]>