Passer au contenu

Comment résoudre l'erreur « ERROR 2026 SSL connection » lorsque je me connecte à une instance de base de données Amazon RDS pour MySQL ou Aurora ?

Lecture de 5 minute(s)
0

Je souhaite utiliser le protocole SSL/TLS pour me connecter à mon instance ou à mon cluster de base de données MySQL Amazon Relational Database Service (Amazon RDS). Cependant, j'ai reçu le message d'erreur suivant : « ERROR 2026 (HY000): SSL connection error. »

Résolution

Utilisez les étapes de dépannage suivantes pour résoudre l’erreur que vous recevez.

Remarque : Dans les exemples de commandes suivants, le point de terminaison du cluster est abcdefg-clust.cluster-xxxx.us-east-1.rds.amazonaws.com. Et le point de terminaison de l'instance de base de données est abcdefg-inst.xxxx.us-east-1.rds.amazonaws.com.

Échec de validation du certificat SSL

Pour résoudre cette erreur, vérifiez d'abord si vous utilisez le point de terminaison du cluster ou le point de terminaison de l'instance de base de données. Pour plus d'informations, consultez Amazon RDS for MySQL ou Utilisation du protocole SSL/TLS pour chiffrer une connexion à un cluster de base de données.

Si vous utilisez un client qui prend en charge les noms alternatifs d’objet (SAN), vous ne pouvez utiliser que le point de terminaison du cluster. Si votre client ne prend pas en charge le SAN, vous devez utiliser le point de terminaison de l'instance de base de données principale.

Remarque : Le client de ligne de commande MySQL par défaut ne prend pas en charge le SAN.

Si vous recevez l'erreur de validation du certificat SSL lorsque vous essayez de vous connecter au point de terminaison du cluster, connectez-vous au point de terminaison de l'instance de base de données principale.

Exemple de commande utilisant le point de terminaison du cluster pour se connecter :

[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

Exemple de commande qui utilise le point de terminaison de l'instance de base de données pour se connecter :

[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

Le serveur ne prend pas en charge le protocole SSL

Cette erreur s'affiche lorsque la version du serveur ou du moteur que vous utilisez ne prend pas en charge le protocole SSL/TLS. Pour résoudre cette erreur, migrez vers un moteur qui prend en charge les connexions SSL/TLS.

Échec de SSL_CTX_set_default_verify_paths

Cette erreur s'affiche lorsque le fichier de certificat n'existe pas, que le chemin de votre fichier est incorrect ou que vous n'êtes pas autorisé à lire le fichier. Vous pouvez également recevoir cette erreur si vous n'êtes pas autorisé à accéder au répertoire dans lequel le fichier de certificat est stocké. Assurez-vous que le fichier du certificat se trouve dans un répertoire auquel vous êtes autorisé à accéder.

Avant de vous connecter, vérifiez que vous avez téléchargé le certificat approprié. Lorsque vous vous connectez, assurez-vous d’utiliser le nom d'identifiant de certificat approprié et le bon chemin d'accès au certificat.

Le fichier de certificat du bundle global se trouve dans le répertoire Téléchargements d'une instance Amazon Elastic Compute Cloud (Amazon EC2).

Exemple de commande utilisant le chemin incorrect vers le certificat global du bundle pour se connecter :

[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

Remarque : Dans la commande précédente, la chaîne de connexion du répertoire personnel est utilisée, mais le certificat global du bundle se trouve dans le répertoire Téléchargements.

Exemple de commande utilisant le chemin correct vers le certificat global du bundle pour se connecter :

[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

Exemple de commande avec des autorisations insuffisantes qui tente de se connecter à l'instance de base de données :

[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

Exemple de commande avec les autorisations appropriées qui se connecte correctement à l'instance de base de données :

[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

Erreur de connexion SSL : error:00000001:lib(0)::reason(1)

Cette erreur de connexion s'affiche dans les scénarios suivants :

  • Vous utilisez le fichier de certificat incorrect.
  • Le fichier de certificat ne correspond pas au certificat requis par l'instance RDS.
  • Le client MySQL ne prend pas en charge l'identifiant du certificat.

Remarque : Pour les clusters de bases de données Aurora sans serveur compatibles avec MySQL, vous devez utiliser des commandes compatibles avec MySQL 8.0.

Avant de vous connecter, vérifiez que vous avez téléchargé le certificat approprié. Lorsque vous vous connectez, assurez-vous d’utiliser le nom d'identifiant de certificat approprié et le bon chemin d'accès au certificat.

Exemple de commande avec un certificat incorrect qui tente de se connecter au point de terminaison de l'instance de base de données :

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

Exemple de commande avec le certificat correct qui se connecte avec succès à l'instance de base de données :

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

Informations connexes

Utilisation de TLS/SSL avec Aurora sans serveur v1

AWS OFFICIELA mis à jour il y a 2 ans