Configura nodi e router del database
Utilizzare impostazioni simili a quelle riportate di seguito per configurare nodi di database e router per la connessione tramite una connessione SSL sicura.
Router
Nel file di configurazione del router, assicurarsi che siano presenti le impostazioni riportate di seguito.
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*
Dopo averla configurata, fornire autorizzazioni di lettura a tutti gli utenti e revocare le autorizzazioni di scrittura al gruppo e ad altri utenti.
Nodo del database
In ciascuno dei nodi del database MySQL, assicurarsi che nella sezione appropriata siano impostati i seguenti elementi:
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
Dopo aver configurato il nodo del database, fornire le autorizzazioni di lettura a tutti gli utenti e revocare le autorizzazioni di scrittura al gruppo e ad altri utenti.
Esecuzione del test della connessione
Dopo aver impostato le configurazioni e aver fornito le autorizzazioni appropriate ai file di configurazione, eseguire il test delle impostazioni riavviando i nodi del database e il router.
Test della connessione ai nodi del database
Assicurarsi che il nodo del database non venga arrestato. Controllare i log sotto l'impostazione di errore di log nel file di configurazione per eventuali errori o avvertenze che indicano che le impostazioni SSL non sono state accettate. Provare a connettersi al nodo specifico utilizzando la riga di comando seguente (utilizzare il nome comune specificato nel certificato per questo nodo):
mysql -u *username* -p *password* -h *db_common_name* -P *db_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
Assicurarsi che la connessione non generi errori.
Analogamente, connettersi a diverse modalità SSL fornendo i valori dei parametri appropriati. Nota: ssl-cert e ssl-key non sono obbligatori per VERIFY_IDENTITY. Tuttavia, se l'utente del database richiede l'autenticazione X509, sia ssl-cert che ssl-key devono essere forniti con client-cert e client-key.
Eseguire il test di tutti i nodi del database utilizzando questo metodo, quindi eseguire il test della connessione router.
Verificare la connessione del router
Dopo che i nodi del database sono attivi, riavviare il router e monitorarlo in modo che non si interrompa.
Controllare i log sotto l'impostazione di errore di log nel file di configurazione per eventuali errori o avvertenze che indicano che le impostazioni SSL non sono state accettate. Se non sono presenti errori o avvertenze, provare a connettersi al database dal router utilizzando il comando seguente. Assicurarsi di utilizzare il nome comune specificato nel certificato del router:
mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
Assicurarsi che la connessione passi senza errori.
Verificare la connessione dal router al nodo del database
Prima determinare il nodo primario attualmente attivo, utilizzando il comando seguente:
MySQL> SHOW VARIABLES like '%hosts%';
Ora eseguire il logout dal database e lo switchover del database in un altro nodo. Quindi eseguire nuovamente il login al database dal router utilizzando il seguente comando:
mysql -u *username* -p *password* -h *router_common_name* -P *router_port* --ssl-mode=VERIFY_IDENTITY --ssl-ca=*path/of/ca.pem*
Controllare di nuovo il nodo primario attualmente attivo utilizzando lo stesso comando:
MySQL> SHOW VARIABLES like '%hosts%';