Configuración de nodos de base de datos y enrutador

Utilice la configuración similar a la siguiente para configurar nodos de base de datos y enrutador para conectarse mediante una conexión SSL segura.

Enrutador

En el archivo de configuración del enrutador, asegúrese de que los siguientes valores estén presentes:

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*

Después de configurarlo, proporcione permisos de lectura a todos los usuarios y revoque los permisos de escritura del grupo y otros.

Nodo de base de datos

En cada uno de los nodos de base de datos MySQL, asegúrese de que lo siguiente se define en la sección adecuada:

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

Después de configurar el nodo de base de datos, proporcione permisos de lectura a todos los usuarios y revoque los permisos de escritura del grupo y otros.

Prueba de la Conexión

Después de que las configuraciones estén en su lugar y se hayan proporcionado los permisos adecuados a los archivos de configuración, pruebe la configuración reiniciando los nodos de base de datos y el enrutador.

Prueba de la conexión de nodos de base de datos

Asegúrese de que el nodo de base de datos no termina. Compruebe los logs con la configuración de error de log en el archivo de configuración en busca de errores o advertencias que indiquen que no se aceptaron los valores de SSL. Intente conectarse al nodo específico mediante la siguiente línea de comandos (utilice el nombre común especificado en el certificado para este nodo):

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

Asegúrese de que la conexión no genere ningún error.

Del mismo modo, conéctese con diferentes modos SSL proporcionando los valores de parámetros adecuados. Nota: ssl-cert y ssl-key no son obligatorios para VERIFY_IDENTITY. Sin embargo, si el usuario de la base de datos necesita autenticación X509, tanto ssl-cert como ssl-key se deben proporcionar con client-cert y client-key.

Pruebe todos los nodos de base de datos con este método y, a continuación, pruebe la conexión del enrutador.

Prueba de la conexión del enrutador

Una vez que los nodos de base de datos estén activos, reinicie el enrutador y supervise para asegurarse de que no termine.

Compruebe los logs con la configuración de error de log en el archivo de configuración en busca de errores o advertencias que indiquen que no se aceptaron los valores de SSL. Si no hay errores ni advertencias, intente conectarse a la base de datos desde el enrutador mediante el siguiente comando. Asegúrese de utilizar el nombre común como se especifica en el certificado para el enrutador:

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

Asegúrese de que la conexión se realiza sin errores.

Verificación de la conexión del enrutador al nodo de base de datos

En primer lugar, determine el nodo principal actualmente activo mediante el siguiente comando:

MySQL> SHOW VARIABLES like '%hosts%';

Ahora cierre la sesión de la base de datos y cambie la base de datos a otro nodo. A continuación, vuelva a iniciar sesión en la base de datos desde el enrutador con el siguiente comando:

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

Vuelva a comprobar el nodo principal actualmente activo con el mismo comando:

MySQL> SHOW VARIABLES like '%hosts%';