Como me conecto com segurança ao MySQL 8 quando caching_sha2_password está em uso?

Como me conecto com segurança ao MySQL 8 quando caching_sha2_password está em uso?

Estou mudando de nossos sites para um novo host. Nosso cluster de banco de dados (PCS) agora executa o MySQL 8. Temos dois servidores de banco de dados (ativo e failover) com um IP virtual flutuante ao qual nos conectamos ao MySQL.

Também temos replicação em execução do cluster para outro servidor (usando logs binários). Configurei a replicação da mesma maneira que quando estávamos usando o MySQL 5.x, incluindo o uso de SSL com CA e certificados autoassinados.

Uma vez feitos os certificados, utilizo esta configuração no master:

ssl
ssl-ca=/var/lib/mysql/ssl/ca.pem
ssl-cert=/var/lib/mysql/ssl/server-cert.pem
ssl-key=/var/lib/mysql/ssl/server-key.pem

A replicação agora está funcionando bem no escravo. No entanto, quando tento conectar-me ao cluster mysql na linha de comando (do servidor de banco de dados ativo), recebo o seguinte erro:

ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

Ao ler sobre isso, pensei que era devido ao fato de que caching_sha2_passwordagora é o padrão e os documentos dizem que é necessária uma conexão segura. Eu tentei o seguinte:

mysql --ssl-mode=DISABLED

e isso não fez nenhuma diferença. Também tentei alterar o usuário:

mysql> ALTER USER 'root'@'db-01' IDENTIFIED WITH mysql_native_password BY 'passwordhere'

e isso também não funcionou. Até agora, a única maneira de fazer login no MySQL é removendo SSL . Eu descobri que eupodefaça isso para conectar assim:

mysql --get-server-public-key

Não tenho certeza se esta é a melhor solução.

O queéa melhor maneira de fazer minhas conexões funcionarem corretamente no MySQL 8 ao usar SSL dessa maneira? Haverá uma série de contas dos servidores de banco de dados que compõem o cluster, nos servidores web na mesma rede interna e externamente (como replicação e gerenciamento remoto de banco de dados).

Responder1

Eu queria saber se você foi capaz de resolver isso. Estou enfrentando o mesmo problema ou semelhante. Aqui está meu tópico no Reddit: https://www.reddit.com/r/mysql/comments/10pa60k/group_replication_and_ssl_configurando_issues/

Qualquer sugestão seria ótima. Obrigado. DD

Responder2

Depois de lutar com isso por uma eternidade, finalmente encontrei a configuração que resolveu isso para mim. YMMV

Tudo o que tive que fazer foi adicionar a seguinte linha ao meu arquivo de configuração do mysql com o restante das configurações de replicação do meu grupo

group_replication_recovery_get_public_key           = on

Pelo que sei, isso não está documentado em lugar nenhum. Eu simplesmente me deparei com isso enquanto examinava as variáveis ​​​​mysql na esperança de encontrar ALGUMA COISA útil.

informação relacionada