Connection SSL à une base

Fermé
karine_b Messages postés 32 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 6 juillet 2009 - 4 févr. 2008 à 01:50
 Drouzig CHAT - 6 mars 2008 à 09:57
Bonjour,


Je cherche à me connecter à une base Mysql hébergé par un serveur Linux depuis un autre ordi, via un accès SSL.
et j'obtient l'erreur suivante :
2026 connection error

Pour ce qui est de la connection SSL, sur le serveur, j'ai fait ceci ;

cd /usr/local/mysql
mkdir openssl && cd openssl
mkdir certs && cd certs

Création du certificat CA
openssl genrsa -out ca-key.pem 2048
openssl req -new -x509 -nodes -days 1000 -key ca-key.pem -out ca-cert.pem
Répondez aux questions par les valeurs adéquates.
Ces commandes openssl génèrent une clé de 2048 bits et un certificat valable pour une durée de 1000 jours.

Création du certificat du serveur
openssl req -newkey rsa:2048 -days 1000 -nodes -keyout server-key.pem -out server-req.pem
openssl x509 -req -in server-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Création du certificat du client
openssl req -newkey rsa:2048 -days 1000 -nodes -keyout client-key.pem -out client-req.pem
openssl x509 -req -in client-req.pem -days 1000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Les données relatives aux certificats doivent être passées en paramètre lors du lancement du service. Elles peuvent aussi être spécifiées dans le fichier de configuration Mysql /etc/my.cnf dans la section [mysqld].

ssl-ca=/usr/local/mysql/openssl/certs/cacert.pem
ssl-cert=/usr/local/mysql/openssl/certs/server-cert.pem
ssl-key=/usr/local/mysql/openssl/certs/server-key.pem

Après redémarrage du service, l'encryption SSL doit être disponible:

mysql> SHOW VARIABLES LIKE 'have_openssl';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_openssl | YES |
+---------------+-------+

Ensuite, j'ai copié les certificats dans un répertoire du client (Windows XP)
je tente de me connecter via un soft (Navicat 8 for Mysql) assez sympa d'interface.
j'ai vérifié que le port est ouvert sur le firewall du serveur Linux

je lui donne
la clé client Z:\parametre\openSSL_keys\client-key.pem
le certif client Z:\parametre\openSSL_keys\client-cert.pem
le ca certif (?) Z:\parametre\openSSL_keys\ca-cert.pem
et il me demande 'specified cipher' ; je mets ALL

Je trouve bizarre que sur mon serveur mysql je fasse ;
mysql> SHOW STATUS LIKE 'Ssl_cipher';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Ssl_cipher | |
+---------------+-------+
1 row in set (0.00 sec)

mysql> show status like 'Ssl_accepts';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Ssl_accepts | 0 |
+---------------+-------+
1 row in set (0.00 sec)

déjà, je trouve cela louche...

voici mon fichier mysql.cnf
[client]
socket = /var/run/mysqld/mysqld.sock


[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-external-locking
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
query_cache_limit = 1M
query_cache_size = 16M
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
skip-bdb
ssl-ca=/usr/local/mysql/openssl/certs/cacert.pem
ssl-cert=/usr/local/mysql/openssl/certs/server-cert.pem
ssl-key=/usr/local/mysql/openssl/certs/server-key.pem

[mysqldump]
quick
quote-names
max_allowed_packet = 16M

[mysql]

[isamchk]
key_buffer = 16M


pour info, j'ai autorisé les accès depuis l'IP de mon PC client
QQun peut il m'aider ?

Cordialement

1 réponse

Drouzig CHAT
6 mars 2008 à 09:57
Hello,

j'ai exactement le même pb ici bas :-/ A priori c'est un pb de configuration au niveau du serveur, mais dur de trouver.
Je teste la connexion avec un client classique (le MySQL Query browser fourni par MySQL) et également avec un client codé par mes soins en C -> ça me permet de chercher qd se produit l'erreur. Je progresse, mais tout doucement, très peu de doc sur ce sujet, je te dis si je trouve !

Drouzig
0