« MySQL » : différence entre les versions
Ligne 137 : | Ligne 137 : | ||
{{ Box Console | objet=sudo chown mysql:mysql /etc/mysql/ssl -R }} | {{ Box Console | objet=sudo chown mysql:mysql /etc/mysql/ssl -R }} | ||
* On édite le fichier '''/etc/apparmor.d/usr.sbin.mysqld''' et on | * On édite le fichier '''/etc/apparmor.d/usr.sbin.mysqld''' et on remplace : | ||
/etc/mysql/*.pem r, | |||
* Par : | |||
/etc/mysql/ssl/*.pem r, | /etc/mysql/ssl/*.pem r, |
Version du 5 février 2014 à 15:21
Installation
|
|
- À la question Nouveau mot de passe du superutilisateur MySQL, renseigner le mot de passe du compte root pour MySQL (indépendant du compte root UNIX)
- Éditer le fichier /etc/mysql/my.cnf puis rechercher la ligne bind-address et indiquer l'adresse IP local de la machine où est installé MySQL.
bind-address = 10.0.0.47
- Redémarrer le service mysql pour appliquer les changements :
|
|
- Première connexion au serveur avec le compte root :
|
|
Le compte root n'est accessible qu'en local uniquement. |
- On va créer l'utilisateur cacheln avec le mot de passe cacheln pouvant se connecter au compte depuis n'importe quelle machine (%) :
|
|
- On créer la base de données cacheln :
|
|
- On attribut tous les privilège à l'utilisateur cacheln sur la base de données cacheln :
|
|
SSL
- Vérifier votre version de Openssl avant de poursuivre :
|
|
La version 1.0.1c n'est pas supporté par MySQL. Il sera nécessaire d'installer une version antérieure pour poursuivre.
Autorité de certification
Création de la clé privée
- On se place dans le dossier /etc/ssl/private qui contient les clés et certificats privées :
|
|
- On génère la clé privée :
|
|
Cette clé va nous permettre de signer nos propres certificats.
Création du certificat auto-signé
- On lance la création de certificat auto-signé :
|
|
Certificat serveur
- On génère la clé privée :
|
|
- On génère un fichier de demande de signature de certificat :
|
|
- On signe notre certificat à l'aide du certificat auto-signé de notre autorité de certification (précédemment créée) :
|
|
Configuration du serveur MySQL
- On déplace les certificats crées dans /etc/ssl/private vers /etc/mysql/ssl
|
|
- On applique les permissions et droits mysql sur les certificats :
|
|
- On édite le fichier /etc/apparmor.d/usr.sbin.mysqld et on remplace :
/etc/mysql/*.pem r,
- Par :
/etc/mysql/ssl/*.pem r, /etc/mysql/ssl/*.crt r, /etc/mysql/ssl/*.key r,
- On édite le fichier de configuration /etc/mysql/my.cnf et on y dé-commente et adapte les lignes suivantes dans la section [mysqld] :
ssl-ca=/etc/mysq/ssl/ca.crt ssl-cert=/etc/mysql/ssl/mysql.crt ssl-key=/etc/mysql/ssl/mysql.key
Validation
mysql> show variables like "%ssl%"; +---------------+--------------------------+ | Variable_name | Value | +---------------+--------------------------+ | have_openssl | YES | | have_ssl | YES | | ssl_ca | /etc/mysq/ssl/ca.crt | | ssl_capath | | | ssl_cert | /etc/mysql/ssl/mysql.crt | | ssl_cipher | | | ssl_key | /etc/mysql/ssl/mysql.key | +---------------+--------------------------+ 7 rows in set (0.02 sec)
mysql> show status like 'Ssl_cipher'; +---------------+--------------------+ | Variable_name | Value | +---------------+--------------------+ | Ssl_cipher | DHE-RSA-AES256-SHA | +---------------+--------------------+ 1 row in set (0.01 sec)