Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tutoriel MySQL - Configuration et gestion de SSL sur votre serveur MySQL

Dans cet article de blog, nous passons en revue certains des aspects importants de la configuration et de la gestion de SSL dans l'hébergement MySQL. Celles-ci incluent la configuration par défaut, la désactivation de SSL, ainsi que l'activation et l'application de SSL sur un serveur MySQL. Nos observations sont basées sur la version communautaire de MySQL 5.7.21.

Configuration SSL par défaut dans MySQL

Par défaut, le serveur MySQL installe et active toujours la configuration SSL. Cependant, il n'est pas imposé que les clients se connectent à l'aide de SSL. Les clients peuvent choisir de se connecter avec ou sans SSL car le serveur autorise les deux types de connexions. Voyons comment vérifier ce comportement par défaut du serveur MySQL.

Lorsque SSL est installé et activé sur le serveur MySQL par défaut, nous verrons généralement ce qui suit :

  1. Présence de fichiers *.pem dans le répertoire de données MySQL. Voici les différents certificats et clés client et serveur utilisés pour SSL, comme décrit ici.
  2. Il y aura une note dans le fichier journal des erreurs mysqld lors du démarrage du serveur, telle que :
    • [Remarque] Trouvé ca.pem, server-cert.pem et server-key.pem dans le répertoire de données. Essayer d'activer le support SSL en les utilisant.
  3. La valeur de la variable 'have_ssl' sera OUI :

mysql> affiche des variables telles que "have_ssl" ;

+—————+——-+

| nom_variable | Valeur |

+—————+——-+

| avoir_ssl      | OUI |

+—————+——-+

En ce qui concerne le client MySQL, par défaut, il essaie toujours d'opter pour une connexion réseau cryptée avec le serveur, et si cela échoue, il retombe en mode non crypté.

Ainsi, en vous connectant au serveur MySQL à l'aide de la commande :

mysql -h -u -p

Nous pouvons vérifier si la connexion client actuelle est cryptée ou non en utilisant la commande status :

mysql>

————–

mysql  Ver 14.14 Distrib 5.7.21, pour Linux (x86_64) avec  encapsuleur EditLine

Identifiant de connexion :         75

Base de données actuelle :

Utilisateur actuel :          [email protected]

SSL :                   Le chiffrement utilisé est DHE-RSA-AES256-SHA

Téléavertisseur actuel :         stdout

Utilisation du fichier de sortie :         ”

Utilisation du délimiteur :        ;

Version du serveur :        5.7.21-log MySQL Community Server (GPL)

Version du protocole :      10

Connexion :            127.0.0.1 via TCP/IP

…………………………..

Le champ SSL surligné ci-dessus indique que la connexion est cryptée. On peut cependant demander au client MySQL de se connecter sans SSL en utilisant la commande :

mysql -h -u  -p –ssl-mode=DISABLED

 état de mysql>

————–

Identifiant de connexion :         93

Base de données actuelle :

Utilisateur actuel :          [email protected]

SSL :                   Non utilisé

Téléavertisseur actuel :         stdout

Utilisation du fichier de sortie :         ”

Utilisation du délimiteur :        ;

Version du serveur :        5.7.21-log MySQL Community Server (GPL)

Version du protocole :      10

Connexion :            127.0.0.1 via TCP/IP

……………………………

Nous pouvons voir que même si SSL est activé sur le serveur, nous pouvons nous y connecter sans SSL.

Tutoriel MySQL - Comment configurer et gérer SSL sur votre serveur #MySQLCliquez pour tweeter

Désactivation de SSL dans MySQL

Si votre besoin est de désactiver complètement SSL sur le serveur MySQL au lieu de l'option par défaut de "mode activé, mais facultatif", nous pouvons faire ce qui suit :

  1.  Supprimez le certificat *.pem et les fichiers de clé dans le répertoire de données MySQL.
  2. Démarrez MySQL avec l'option SSL désactivée. Cela peut être fait en ajoutant une entrée de ligne :

ssl=0   dans le fichier my.cnf.

 Nous pouvons observer que :

  1. Il n'y aura AUCUNE note dans les journaux mysqld telle que :
    • [Remarque] Trouvé ca.pem, server-cert.pem et server-key.pem dans le répertoire de données. Essayer d'activer le support SSL en les utilisant.
  2.  La valeur de la variable "have_ssl" sera DÉSACTIVÉE :

mysql> affiche des variables telles que "have_ssl" ;

+—————+——-+

| nom_variable | Valeur |

+—————+——-+

| avoir_ssl      | DÉSACTIVÉ |

+—————+——-+

Application de SSL dans MySQL

Nous avons vu que bien que SSL soit activé par défaut sur le serveur MySQL, il n'était pas appliqué et nous pouvions toujours nous connecter sans SSL.

Maintenant, en définissant la variable système require_secure_transport , nous pourrons faire en sorte que le serveur n'accepte que les connexions SSL. Cela peut être vérifié en essayant de se connecter au serveur MySQL avec la commande :

mysql -h -u sgroot -p –ssl-mode=DISABLED

Et, nous pouvons voir que la connexion serait refusée avec le message d'erreur suivant du serveur :

ERREUR 3159 (HY000) :les connexions utilisant un transport non sécurisé sont interdites tant que –require_secure_transport=ON.

Considérations SSL pour les canaux de réplication

Par défaut, dans une configuration de réplication MySQL, les esclaves se connectent au maître sans chiffrement.

Ainsi, pour se connecter à un maître de manière sécurisée pour le trafic de réplication, les esclaves doivent utiliser MASTER_SSL=1 ; dans le cadre du ‘CHANGE MASTER TO’ commande qui spécifie les paramètres de connexion au maître. Veuillez noter que cette option est également obligatoire dans le cas où votre maître est configuré pour appliquer une connexion SSL à l'aide de require_secure_transport.