Création de certificats SSL pour MySQL avec openSSL
La création de certificats de sécurité SSL au moyen de openSSL devient assez facile après quelques usages. Voici comment créer des CA (certificate authority) qui permettront une communication SSL entre 2 serveurs MySQL.
Installation de openSSL :
aptitude update
aptitude install openssl
Créer les certificats SSL (CA)
mkdir /etc/mysql/openssl
cd /etc/mysql/openssl/Lorsque vous créez vos certificats, certaines questions vous seront posées.
Il est recommandé d’y répondre dans un environnement de production.
Laissez vide pour la question `challenge password` et `suivante` s’il y a lieu.
openssl req -x509 -new -days 9999 -newkey rsa:2048 -nodes -keyout ca-key.pem -out ca-cert.pem
openssl req -new -newkey rsa:2048 -nodes -keyout key.pem -out csr.pem
openssl rsa -in key.pem -out key.pem
openssl x509 -req -days 9999 -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -CAserial ca-srl.txt -in csr.pem -out cert.pemNous allons maintenant modifier le fichier de configuration mysql :
nano /etc/mysql/my.cnfRepérez, modifiez et décommentez les 3 ssl dans la section [mysqld]
ssl-ca=/etc/mysql/openssl/ca-cert.pem
ssl-cert=/etc/mysql/openssl/cert.pem
ssl-key=/etc/mysql/openssl/key.pem
cd /etc/mysql
chown -R mysql:mysql openssl
chmod -R 500 openssl
Redémarrer MySQL
/etc/init.d/mysql restart
Vérification du support SSL :
mysql> SHOW VARIABLES LIKE '%ssl%';
Si vous voyez ceci, tout est ok!
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl | YES |
+---------------+-------+
Si vous voyez « DISABLED », veuillez re-créer vos certificats et redémarrer mysql.
ATTENTION! :
Depuis MySQL 5.1.38, il est impossible d'obtenir une connexion encryptée sans le message d'erreur 2026 :
'SSL connection error'
Pour contourner cela, vous devez omettre les options --ssl-cert et --ssl-key lors de vos connexions.
Spécifiez uniquement --ssl-ca
--ssl --ssl-ca=<votre certificat ca>
ou
--ssl --ssl-ca=/dev/null
This Epopée was painful.
Commentaires récents