Ir para o conteúdo

Como posso resolver a mensagem de erro "ERROR 2026 SSL connection" ao me conectar a uma instância de banco de dados do Amazon RDS para MySQL ou Aurora?

5 minuto de leitura
0

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

AWS OFICIALAtualizada há 2 anos