Saltar al contenido

¿Cómo puedo resolver un error de tipo «ERROR 2026 SSL connection» al conectarme a una instancia de base de datos de Aurora o de Amazon RDS para MySQL?

5 minutos de lectura
0

Quiero usar SSL/TLS para conectarme a mi instancia o clúster de base de datos MySQL de Amazon Relational Database Service (Amazon RDS). Sin embargo, he recibido el siguiente error: «ERROR 2026 (HY000): SSL connection error.»

Resolución

Usa los siguientes pasos de solución de problemas para resolver el error que veas.

Nota: En el siguiente ejemplo, el punto de enlace del clúster es abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com. El punto de enlace de la instancia de base de datos es abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com.

Error en la validación del certificado SSL

Para solucionar este error, primero comprueba si estás utilizando el punto de enlace del clúster o el de la instancia de base de datos. Para obtener más información, consulta Amazon RDS para MySQL o Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos.

Si usas un cliente que admite nombres alternativos de sujetos (SAN), solo puedes usar el punto de conexión del clúster. Si tu cliente no admite SAN, debes usar el punto de enlace de la instancia de base de datos principal.

Nota: El cliente de línea de comandos de MySQL predeterminado no admite SAN.

Si recibes el error de validación del certificado SSL cuando intentas conectarte al punto de enlace del clúster, conéctate al punto de enlace de la instancia de base de datos principal.

Ejemplo de comando que usa el punto de enlace del clúster para conectarse:

[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

Ejemplo de comando que usa el punto de enlace de la instancia de base de datos para conectarse: 

[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

El servidor no admite SSL

Puedes ver este error si la versión del servidor o del motor que utilizas no admite SSL/TLS. Para resolver este error, migra a un motor que admita conexiones SSL/TLS.

Error en SSL_CTX_set_default_verify_paths

Verás este error cuando el archivo de certificado no exista, la ruta del archivo sea incorrecta o si no tienes permisos para leer el archivo. También puedes ver este error si no tienes permisos para acceder al directorio en el que está almacenado el certificado. Asegúrate de que el certificado esté en un directorio al que tengas permisos de acceso.

Antes de conectar, confirma que has descargado el certificado correcto. Cuando te conectes, asegúrate de usar el nombre del identificador del certificado correcto y la ruta correcta al certificado. 

El archivo de certificado del paquete global se encuentra en el Directorio de descargas en una instancia de Amazon Elastic Compute Cloud (Amazon EC2).

Ejemplo de comando que usa la ruta incorrecta al certificado del paquete global para conectarse:

[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

Nota: En el comando anterior, se usó la cadena de conexión del directorio principal, pero el certificado del paquete global está en el directorio de descargas.

Ejemplo de comando que usa la ruta correcta al certificado del paquete global para conectarse:

[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

Ejemplo de comando con permisos insuficientes que intenta conectarse a la instancia de base de datos:

[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

Ejemplo de comando con los permisos correctos que se conecta sin errores a la instancia de base de datos:

[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

Error de conexión SSL: error:00000001:lib(0)::reason(1)

Verás este error de conexión en las siguientes situaciones:

  • Si usas un archivo de certificado incorrecto.
  • Si el archivo de certificado no coincide con el certificado que requiere la instancia de RDS.
  • Si el cliente MySQL no admite el identificador del certificado.

Nota: En los clústeres de bases de datos sin servidor de Aurora compatibles con MySQL, debes usar comandos compatibles con MySQL 8.0.

Antes de conectar, confirma que has descargado el certificado correcto. Cuando te conectes, asegúrate de usar el nombre del identificador del certificado correcto y la ruta correcta al certificado. 

Ejemplo de comando con un certificado incorrecto que intenta conectarse al punto de enlace de la instancia de base de datos:

[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)

Ejemplo de comando con el certificado correcto que se conecta adecuadamente a la instancia de base de datos:

[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.

Información relacionada

Uso de TLS/SSL con Aurora sin servidor (V1)

OFICIAL DE AWSActualizada hace 2 años