Datenbankknoten und Router konfigurieren

Verwenden Sie die folgenden Einstellungen, um Datenbankknoten und Router für die Verbindung über eine sichere SSL-Verbindung zu konfigurieren.

Router

Stellen Sie in der Router-Konfigurationsdatei sicher, dass die folgenden Einstellungen vorhanden sind:

CLIENT_SSL_MODE=PREFERRED
CLIENT_SSL_CERT=*absolute path of the generated router certificate*
CLIENT_SSL_KEY=*absolute path of the generated router key*
SERVER_SSL_MODE=AS_CLIENT
SERVER_SSL_VERIFY=VERIFY_IDENTITY
SERVER_SSL_CA=*absolute path of the common ca.pem placed on this server*

Geben Sie nach der Konfiguration Leseberechtigungen für alle Benutzer an, und widerrufen Sie Schreibberechtigungen für die Gruppe und andere Benutzer.

Datenbankknoten

Stellen Sie in jedem der MySQL-Datenbankknoten sicher, dass unter dem entsprechenden Abschnitt Folgendes festgelegt ist:

SSL_CAPATH=*absolute path of the common ca.pem placed on this node*
SSL_CA=ca.pem
SSL_CERT=server-cert.pem
SSL_KEY=server-key.pem
GROUP_REPLICATION_SSL_MODE=REQUIRED
REQUIRE_SECURE_TRANSPORT=ON

Nachdem Sie den Datenbankknoten konfiguriert haben, erteilen Sie allen Benutzern Leseberechtigungen, und entziehen Sie der Gruppe und anderen Benutzern Schreibberechtigungen.

Verbindung testen

Nachdem die Konfigurationen eingerichtet und die entsprechenden Berechtigungen für die Konfigurationsdateien bereitgestellt wurden, testen Sie die Einstellungen, indem Sie die Datenbankknoten und den Router neu starten.

Datenbankknotenverbindung testen

Stellen Sie sicher, dass der Datenbankknoten nicht beendet wird. Prüfen Sie die Logs unter der Logfehlereinstellung in der Konfigurationsdatei auf Fehler oder Warnungen, die darauf hinweisen, dass die SSL-Einstellungen nicht akzeptiert wurden. Versuchen Sie, mit der folgenden Befehlszeile eine Verbindung zum jeweiligen Knoten herzustellen (verwenden Sie den im Zertifikat für diesen Knoten angegebenen allgemeinen Namen):

mysql -u *username* -p *password* -h *db_common_name* -P *db_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*

Stellen Sie sicher, dass die Verbindung keine Fehler generiert.

Verbinden Sie sich mit verschiedenen SSL-Modi, indem Sie die entsprechenden Parameterwerte angeben. Hinweis: ssl-cert und ssl-key sind für VERIFY_IDENTITY nicht obligatorisch. Wenn der Datenbankbenutzer jedoch die X509-Authentifizierung benötigt, müssen sowohl ssl-cert als auch ssl-key mit client-cert und client-key angegeben werden.

Testen Sie alle Datenbankknoten mit dieser Methode, und testen Sie dann die Routerverbindung.

Testen der Router-Verbindung

Starten Sie den Router neu, nachdem die Datenbankknoten hochgefahren sind, und überwachen Sie ihn, um sicherzustellen, dass er nicht beendet wird.

Prüfen Sie die Logs unter der Logfehlereinstellung in der Konfigurationsdatei auf Fehler oder Warnungen, die darauf hinweisen, dass die SSL-Einstellungen nicht akzeptiert wurden. Wenn keine Fehler oder Warnungen vorhanden sind, versuchen Sie mit dem folgenden Befehl, eine Verbindung mit der Datenbank über den Router herzustellen. Stellen Sie sicher, dass Sie den im Zertifikat für den Router angegebenen allgemeinen Namen verwenden:

mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*

Stellen Sie sicher, dass die Verbindung fehlerfrei durchläuft.

Verbindung vom Router zum Datenbankknoten prüfen

Bestimmen Sie zunächst den derzeit aktiven primären Knoten mit dem folgenden Befehl:

MySQL> SHOW VARIABLES like '%hosts%';

Melden Sie sich jetzt von der Datenbank ab, und führen Sie ein Switchover der Datenbank auf einen anderen Knoten durch. Melden Sie sich dann erneut vom Router aus bei der Datenbank an. Verwenden Sie dazu den folgenden Befehl:

mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*

Prüfen Sie den derzeit aktiven primären Knoten erneut mit demselben Befehl:

MySQL> SHOW VARIABLES like '%hosts%';