Accueil > espace code > Connexion SSL MySQL OpenSSL sur Debian Etch et Lenny

Connexion SSL MySQL OpenSSL sur Debian Etch et Lenny

MySQL-SSLIl y a un problème dans Debian Etch et Lenny pour les connexions MySQLSSL.
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.0

Une 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.list

Remplacez 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 contrib

Mettez à jour le cache apt et quittez root :

aptitude update
exit

Rendez-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.
http://momocello.com/creation-de-certificats-ssl-pour-mysql-avec-openssl/

  1. John
    07/04/2010 à 02:23 | #1

    Un grand merci.

  2. 07/04/2010 à 08:50 | #2

    Avec plaisir.

  1. Pas encore de trackbacks
*