Après avoir créé un certificat SSL auto-signé, j'ai configuré mon serveur MySQL distant pour les utiliser (et SSL est activé)
Je ssh dans mon serveur distant, et j'essaye de me connecter à son propre mysqld en utilisant SSL (le serveur MySQL est 5.5.25) ..
mysql -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
Ok, je me souviens d'avoir lu un problème avec la connexion au même serveur via SSL. Je télécharge donc les clés client dans ma boîte locale et je teste à partir de là ...
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key --ssl-ca=ca.cert
Enter password:
ERROR 2026 (HY000): SSL connection error
Il est difficile de savoir à quoi se réfère cette erreur "Erreur de connexion SSL", mais si j'omet le -ssl-ca
, je peux me connecter en utilisant SSL.
mysql -h <server> -u <user> -p --ssl=1 --ssl-cert=client.cert --ssl-key=client.key
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.25 MySQL Community Server (GPL)
Cependant, je pense que cela ne fait que crypter la connexion, et non pas vérifier la validité du certificat (ce qui signifie que je serais potentiellement vulnérable à une attaque d'homme au milieu)
Les certificats SSL sont valides (bien qu'auto-signés) et ne comportent pas de phrase secrète. Alors ma question est, qu'est-ce que je fais mal? Comment puis-je me connecter via SSL, en utilisant un certificat auto-signé?
La version du serveur MySQL est 5.5.25 et le serveur et les clients sont CentOS 5.
Merci pour tout conseil
Edit : Notez que dans tous les cas, la commande est émise à partir du même répertoire où résident les clés SSL (donc pas de chemin absolu)
Edit (en réponse à mgorven):
ca.cert
est le certificat de l'autorité de certification, qui est censé dire à mysql que mon autorité de certification est approuvée.
La configuration de my.cnf
est -
[mysqld]
ssl-ca=/etc/ssl/mysql/ca.cert
ssl-cert=/etc/ssl/mysql/server.cert
ssl-key=/etc/ssl/mysql/server.key
J'ai également essayé d'ajouter, ssl-cipher=DHE-RSA-AES256-SHA
mais je l'ai supprimé depuis car cela n'a pas aidé.
ca.cert
? S'agit-il du certificat auto-signé du serveur? Utilisez-vous des certificats clients pour l'authentification? Veuillez fournir la configuration liée à SSL sur le serveur.