[Résolu] Connection à mysql via ssl
Bonjour,
je dois travailler sur une appli qui doit exécuter des requêtes SQL sur un serveur mysql du réseau local qui n'accepte les connexions extérieures que via SSL.
J'ai récupéré les fichiers client-key.pem, client-cert.pem et ca-cert.pem depuis le serveur.
Je pense avoir créé correctement les fichiers truststore et keystore grâce à keytool (mais je suis pas à l'abri d'une erreur).
J'ai suivi le tuto suivant :
http://dev.mysql.com/doc/refman/5.0/...using-ssl.html
Je précise que j'arrive à me connecter sans problème en ligne de commandes via la commande :
Code:
mysql --host toto.fr -u ursule -p --ssl --ssl-ca ./cert/ca-cert.pem --ssl-cert ./cert/client-cert.pem --ssl-key ./cert/client-key.pem
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| /**
* Gère les connections à une base de données, l'envoi de requètes et la lecture
* des résultats
*/
package com.toto.bdd;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Enumeration;
import java.util.Properties;
/**
* @author huit_six
*
*/
public class Requete {
private Properties properties = new Properties();
public Requete() {
System.setProperty("javax.net.ssl.keyStore","/home/huit_six/Bureau/op/cert/keystore");
System.setProperty("javax.net.ssl.keyStorePassword","toto");
System.setProperty("javax.net.ssl.trustStore","/home/huit_six/Bureau/op/cert/truststore");
System.setProperty("javax.net.ssl.trustStorePassword","toto");
System.setProperty("javax.net.debug","all");
properties.setProperty("user", "ursule");
properties.setProperty("password", "toto");
properties.setProperty("useSSL", "true");
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://toto.fr:3306/pharma";
Connection conn = DriverManager.getConnection(url, properties);
System.out.println("Connection effective !");
} catch (Exception e) {
e.printStackTrace();
}
}
} |
Bien entendu j'ai modifié les informations confidentielles...
Je précise que j'arrive bien à me connecter à ma base de tests en local sans SSL donc ça ne vient pas d'un problème d'installation de JDBC ni du pilote.
De toute façon, l'exception levée est :
Code:
java.sql.SQLException: Access denied for user 'ursule'@'toto.fr' (using password: YES)
Il semble bien que ce soit un problème d'authentification donc...
Comme j'avoue ne pas être vraiment calé en SSL, je n'ai vraiment plus d'idée pour déboguer ça.
Pourriez-vous m'aider ?
D'avance merci !
PS: Je précise que je n'ai pas pu tester sn SSL sur ma base locale perso parce qu'en bidouillant ces histoires de SSL j'ai bloqué ma base...