SSL-Zertifikate für den DataSunrise-Datenbank-Proxy einrichten
Die meisten Datenbanken unterstützen die Verifizierung der Serveridentität mittels Zertifikaten. Dabei wird bei einer Verbindung zu einem Server ein Verifizierungsverfahren durchgeführt: Sollte das vom Server empfangene Zertifikat authentisch sein, wird eine Verbindung hergestellt, andernfalls wird dies als ein Man-in-the-Middle-Angriff betrachtet. Diese Serverzertifikatsüberprüfung kann je nach dem DBMS standardmäßig aktiviert/deaktiviert werden. Wir empfehlen jedoch, die Zertifikatsprüfung zu aktivieren, um Ihre Daten sicher zu halten.
Für eine direkte Verbindung zwischen einer Datenbank und einer Clientanwendung funktioniert eine Zertifikatsprüfung wie folgt:
client(CA-cert) <---> server(Server-cert, Server-key)
- CA-cert – Root-Zertifikat der Zertifizierungsstelle,
- Server-key – Server-Privatschlüssel
- Server-cert – vom CA signiertes Serverzertifikat.
Schauen wir uns das Beispiel von MySQL an.
Der MySQL-Client kennt das CA-Zertifikat. Auf der Serverseite befinden sich Server-cert und Server-key. Der Client kann SSL-Modus aktivieren. Der Standardwert von ssl_mode=prefer bedeutet, dass die Serverzertifikatsauthentifizierung deaktiviert ist. Außerdem kann der Parameter ssl_mode auf folgende Werte gesetzt werden:
- Verify-CA (Ich möchte, dass meine Daten verschlüsselt werden und akzeptiere den Overhead. Ich möchte sicherstellen, dass ich eine Verbindung zu einem vertrauenswürdigen Server herstelle)
- Verify-Identity (Ich möchte, dass meine Daten verschlüsselt werden und akzeptiere den Overhead. Ich möchte sicherstellen, dass ich eine Verbindung zu einem vertrauenswürdigen Server herstelle und dass es der angegebene Server ist)
Unten ist eine Beispiel-String, die zur Herstellung einer direkten Verbindung mit Zertifikatsprüfung verwendet wird:
$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 aktiviertem DataSunrise Zertifikatsprüfung:

Datasunrise implementiert die End-to-End-Verschlüsselungsfunktionalität in einer Client-Proxy-Server-Kette.
Schauen 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, müssen Proxy-key und Proxy-cert generiert und von der CA-Zertifikate signiert werden. Dies ermöglicht es Ihnen, sicherzustellen, dass Sie eine Verbindung zu einem authentischen DataSunrise-Proxy herstellen.
Die zweite Verbindung wird zwischen einem DataSunrise-Proxy und einem Datenbankserver hergestellt und verwendet seine eigene SSL-Konfiguration. Der DataSunrise-Proxy fungiert hier als Client-App und kann auch eine Verbindung zu einem authentischen Server verifizieren.
Beachten Sie bitte, dass die Zertifikatsauthentifizierung eine zusätzliche Option für die SSL-Verschlüsselung darstellt und nicht funktioniert, wenn die SSL-Verschlüsselung deaktiviert ist.
Es ist auch wichtig, dass der DataSunrise-Proxy ein transparenter Proxy ist und den Verschlüsselungsmodus unterstützt, der zwischen dem Client und dem Datenbankserver ausgehandelt wird. Das bedeutet, dass es unmöglich ist, nur eine Verbindung in der Kette zu verschlüsseln. Der DataSunrise-Proxy kann keine verschlüsselten Daten von einem Ende empfangen und unverschlüsselte Daten an das andere Ende senden und umgekehrt.
Hier sind die Schritte, die Ihnen ermöglichen, eine SSL-Zertifikatsprüfung im DataSunrise einzurichten:
Erste Verbindung
1. Gehen 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. Hierfür müssen Sie den Proxy-Typ auswählen.

3. Gehen Sie zu Konfiguration → Datenbanken. Öffnen Sie Ihre Datenbankinstanz-Seite 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 und speichern Sie die Einstellungen.

Zweite Verbindung
1. Gehen Sie zu Konfiguration → SSL-Schlüsselgruppe und klicken Sie auf Gruppe hinzufügen. Wählen Sie den Interface-Typ und geben Sie Ihr CA-Zertifikat in das CA-Feld ein.

2. Gehen Sie zu Konfiguration → Datenbanken, wählen Sie Ihre Instanz und klicken Sie auf das “Stift”-Symbol, um die Schnittstelleneinstellungen zu bearbeiten

3. Sie müssen die in Schritt eins erstellte Gruppe angeben, den Zertifikatsverifizierungsmodus auswählen und die Einstellungen speichern.

- Nicht verifizieren – die Zertifikatsprüfung wird nicht durchgeführt,
- Nur CA verifizieren – das CA-Zertifikat des Servers wird verifiziert,
- CA und Identität verifizieren – das CA-Zertifikat des Servers und der Hostname des Servers im Zertifikat wird verifiziert.
Nachdem Sie die obigen Schritte abgeschlossen haben, löst das Herstellen einer Verbindung zu einem Proxy die Zertifikatsprüfung für die beiden Server aus und beseitigt 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)]>