Il y a un problème dans Debian Etch et Lenny pour les connexions MySQL–SSL.
Lorsque vous essayez de vous connecter à distance sur un serveur MySQL en SSL, vous risquez de rencontrer l’erreur suivante : « SSL connection error ».
Cette erreur est due au fait que MySQL n’est pas compilé avec openSSL dans ces distributions.
Pour utiliser SSL, vous devez recompiler MySQL. Je n’ai pas réussi à recompiler la version backports de Etch… (pas de répertoire debian/rules). Je vais donc recompiler la version de Lenny dans Etch. Cette astuce fonctionnera tant et aussi longtemps que Lenny utilisera la version 5.0 de MySQL.
Il y a un autre bug dans MySQL sur Etch : pas moyen de faire un mysqldump en SSL.
mysqldump: Got error: 2026: SSL connection error when trying to connect
http://bugs.mysql.com/bug.php?id=27669
Il semble que ce bug ait été réglé dans la version 5.0.42 de mysql.
C’est pourquoi j’ai besoin d’une version instable de MySQL sur Debian, la version stable étant 5.0.32.
Voici la marche à suivre pour régler ces problèmes.
1-Préparation Etch :
aptitude update
aptitude install libssl-dev openssl devscripts build-essential fakeroot
apt-get build-dep mysql-server-5.0
1-Préparation Lenny :
aptitude update
aptitude install libssl-dev openssl devscripts build-essential fakeroot debian-builder libtool libncurses5-dev libwrap0-dev libreadline5-dev libreadline-dev chrpath automake1.9 dpatch gawk bison
apt-get build-dep mysql-server-5.0
Si vous ne souhaitez pas profiter de mysqldump en SSL sous Etch, vous pouvez oublier l’étape suivante et sauter à la section « Etch sans mysqldump-ssl / Lenny ».
2-Etch, bug 27669 MySQL, « Twisted Hack » 😀
Nous allons télécharger les fichiers sources de Lenny où le bug a été réglé.
Cette démarche ne nuira pas au bon fonctionnement de Etch.
nano /etc/apt/sources.list
Remplacez etch ou stable par lenny (devrait ressembler à ça) :
deb http://debian.mirror.iweb.ca/debian lenny main non-free contrib
deb-src http://debian.mirror.iweb.ca/debian lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main non-free contrib
deb-src http://security.debian.org/ lenny/updates main non-free contrib
Mettez à jour le cache apt :
aptitude update
Téléchargez les sources de MySQL :
Un autre bug nous empêche de compiler en root sous Lenny.
http://bugs.mysql.com/bug.php?id=26884
VOUS NE POUVEZ CONTINUER EN ROOT.
Veuillez continuer en tant qu’utilisateur.
cd /home/<votre utilisateur>
mkdir build
cd build
apt-get source mysql-server-5.0Une fois les téléchargements terminés, il nous faut revenir en etch pour prévenir un update vers Lenny :
su
nano /etc/apt/sources.listRemplacez lenny par etch :
deb http://debian.mirror.iweb.ca/debian etch main non-free contrib
deb-src http://debian.mirror.iweb.ca/debian etch main non-free contrib
deb http://security.debian.org/ etch/updates main non-free contrib
deb-src http://security.debian.org/ etch/updates main non-free contribMettez à jour le cache apt et quittez root :
aptitude update
exitRendez-vous à la section « Changements avant la compilation ».
2-Etch sans mysqldump-ssl / Lenny
Téléchargez les sources de MySQL :
Un autre bug nous empêche de compiler en root sous Lenny.
http://bugs.mysql.com/bug.php?id=26884
VOUS NE POUVEZ CONTINUER EN ROOT.
Veuillez continuer en tant qu’utilisateur sous Lenny.
cd /home/<votre utilisateur>
mkdir build
cd build
apt-get source mysql-server-5.0
3-Changements avant la compilation : Etch-Lenny
cd mysql*
nano debian/rules
//changez `without-openssl` pour `with-openssl`
//changez `with-yassl` pour `without-yassl`
nano debian/changelog
//remplacez 5.0.51a-23 par votre version (voir debian/changelog)
ou ce genre de commande :
debchange -v 5.0.51a-23+ssl "Added SSL"
4-Compilation :
debuild -us -uc
Prendre une `pas pire` pause :)
5-Installation :
cd ..
su
dpkg -i *.deb
//répéter si code d'erreur.
dpkg -i *.deb
//si problème de connexion vers MySQL
dpkg-reconfigure mysql-server-5.0
//ou
dpkg-reconfigure mysql-server-5.1
6-Configuration :
Vous voulez vous connecter à distance sur ce serveur MySQL :
nano /etc/mysql/my.cnf
Commentez
7-Empêcher la mise à jour des packets compilés :
aptitude hold libmysqlclient15-dev libmysqlclient15off mysql-client mysql-client-5.0 mysql-server mysql-server-5.0 mysql-common
//changez hold pour unhold pour mettre à jour de nouveau
Et voilà! VIVA EL BUG!!!
Vous devez maintenant créer vos certificats.
https://www.momocello.com/creation-de-certificats-ssl-pour-mysql-avec-openssl/
Un grand merci.
Avec plaisir.