Configurar Nós e Roteador do Banco de Dados

Use as configurações semelhantes às seguintes para configurar nós de banco de dados e roteador para conexão por meio de uma conexão SSL segura.

Roteador

No arquivo de configuração do roteador, verifique se as configurações abaixo estão 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*

Após sua configuração, forneça permissões de leitura a todos os usuários e revogue as permissões de gravação do grupo e de outros usuários.

Nó do Banco de Dados

Em cada um dos nós do banco de dados MySQL, certifique-se de que o seguinte esteja definido na seção apropriada:

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

Após configurar o nó do banco de dados, forneça permissões de leitura a todos os usuários e revogue as permissões de gravação do grupo e de outros.

Testando a Conexão

Depois que as configurações estiverem em vigor e as permissões apropriadas tiverem sido fornecidas aos arquivos de configuração, teste as configurações reiniciando os nós e o roteador do banco de dados.

Testar a Conexão de Nós do Banco de Dados

Certifique-se de que o nó do banco de dados não seja encerrado. Verifique os logs na definição de log-error no arquivo de configuração para ver se há erros ou avisos que indicam que as definições de SSL não foram aceitas. Tente estabelecer conexão com o nó específico usando a seguinte linha de comando (use o nome comum conforme especificado no certificado deste nó):

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

Certifique-se de que a conexão não gere erros.

Da mesma forma, conecte-se com diferentes modos SSL fornecendo os valores de parâmetro apropriados. Observação: Os campos ssl-cert e ssl-key não são obrigatórios para VERIFY_IDENTITY. No entanto, se o usuário do banco de dados exigir a autenticação X509, ssl-cert e ssl-key deverão ser fornecidos com client-cert e client-key.

Teste todos os nós do banco de dados usando este método e, em seguida, teste a conexão do roteador.

Testar a Conexão do Roteador

Depois que os nós do banco de dados estiverem ativos, reinicie o roteador e monitore-o, garantindo que ele não seja encerrado.

Verifique os logs na definição de log-error no arquivo de configuração para ver se há erros ou avisos que indicam que as definições de SSL não foram aceitas. Se não houver erros ou avisos, tente se conectar ao banco de dados do roteador usando o comando a seguir. Certifique-se de usar o nome comum conforme especificado no certificado para o roteador:

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

Certifique-se de que a conexão passe sem erros.

Verificar a Conexão do Roteador com o Nó do Banco de Dados

Primeiro, determine o nó primário ativo no momento, usando o seguinte comando:

MySQL> SHOW VARIABLES like '%hosts%';

Agora faça logout do banco de dados e faça switchover do banco de dados para outro nó. Em seguida, faça login no banco de dados a partir do roteador novamente, usando o seguinte comando:

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

Verifique o nó principal ativo no momento usando o mesmo comando novamente:

MySQL> SHOW VARIABLES like '%hosts%';