Quero usar SSL/TLS para me conectar à minha instância ou cluster de banco de dados MySQL do Amazon Relational Database Service (Amazon RDS). Mas recebo a seguinte mensagem de erro: "ERROR 2026 (HY000): SSL connection error."
Resolução
Conclua as etapas de solução de problemas a seguir para solucionar a mensagem de erro que você recebe.
Observação: nos exemplos de comandos a seguir, o endpoint do cluster é abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com. E o endpoint da instância de banco de dados é abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com.
Falha na validação do certificado SSL
Para solucionar esse erro, primeiro confirme se você está usando o endpoint do cluster ou o endpoint da instância de banco de dados. Para obter mais informações, consulte Amazon RDS para MySQL ou Usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.
Se você usar um cliente que ofereça suporte a Nomes alternativos do assunto (SAN), é possível usar somente o endpoint do cluster. Se o seu cliente não oferecer suporte a SAN, você deve usar o endpoint da instância de banco de dados primário.
Observação: o cliente de linha de comandos padrão do MySQL não oferece suporte a SAN.
Se você receber o erro de validação do certificado SSL ao tentar se conectar ao endpoint do cluster, conecte-se ao endpoint da instância de banco de dados primário.
Exemplo de comando que usa o endpoint do cluster para se conectar:
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
ERROR 2026 (HY000): SSL connection error: SSL certificate validation failure
Exemplo de comando que usa o endpoint da instância de banco de dados para se conectar:
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca rglobal-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 26
O servidor não oferece suporte a SSL
É possível receber essa mensagem de erro se a versão do servidor ou do mecanismo que você usa não oferece suporte a SSL. Para resolver esse erro, migre para um mecanismo que ofereça suporte a conexões SSL/TLS.
Falha no SSL_CTX_set_default_verify_paths
Você recebe essa mensagem de erro quando o arquivo do certificado não existe, o caminho do seu arquivo está incorreto ou você não tem permissão para ler o arquivo. Também é possível receber essa mensagem de erro se não tiver permissões para o diretório onde o certificado está armazenado. Certifique-se de que o certificado esteja em um diretório ao qual você tenha as permissões de acesso.
Antes de se conectar, confirme se você baixou o certificado correto. Ao se conectar, certifique-se de que você está usando o nome do identificador de certificado correto e o caminho correto para o certificado.
Em uma instância do Amazon Elastic Compute Cloud (Amazon EC2), o arquivo de certificado de pacote global está no diretório Downloads.
Exemplo de comando que está usando o caminho incorreto para o certificado do pacote global para se conectar:
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed
Observação: no comando anterior, a string de conexão no diretório Inicial é usada, mas o certificado do pacote global está no diretório Downloads.
Exemplo de comando que está usando o caminho correto para o certificado do pacote global para se conectar:
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com --ssl-ca /home/ec2-user/Downloads/global-bundle.pem
--ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 26
Exemplo de comando com permissões insuficientes que está tentando se conectar à instância de banco de dados:
[ec2-user@ip-192-0-2-0 ~]$ sudo chmod 700 global-bundle.pem
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed
Exemplo de comando com as permissões corretas que está se conectando com sucesso à instância de banco de dados:
[ec2-user@ip-192-0-2-0 ~]$ sudo chmod 755 global-bundle.pem
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u test -p test
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 810
SSL connection error: error:00000001:lib(0)::reason(1)
Você recebe essa mensagem de erro de conexão nos seguintes cenários:
- Você usa o arquivo de certificado incorreto.
- O arquivo de certificado não corresponde ao certificado exigido pela instância do RDS.
- O cliente MySQL não é compatível com o identificador do certificado.
Observação: para clusters de banco de dados do Aurora sem servidor compatíveis com MySQL, você deve usar comandos compatíveis com o MySQL 8.0.
Antes de se conectar, confirme se você baixou o certificado correto. Ao se conectar, certifique-se de que você está usando o nome do identificador de certificado correto e o caminho correto para o certificado.
Exemplo de comando com certificado incorreto que está tentando se conectar ao endpoint da instância de banco de dados:
[ec2-user@ip-192-0-2-0 ~]$ mysql -habcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca rds-ca-2019-root.pem --ssl-mode=VERIFY_IDENTITY -u test -p
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0)::reason(1)
Exemplo de comando com certificado correto que está se conectando com sucesso à instância de banco de dados:
[ec2-user@ip-192-0-2-0 ~]$ mysql -h abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com --ssl-ca global-bundle.pem --ssl-mode=VERIFY_IDENTITY -u admin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Informações relacionadas
Usar TLS/SSL com o Aurora sem servidor v1