[Résolu] [mysql++] SSL connection error
Bonjour,
Je travaille sur une application mysql++ et j'aimerais utiliser une connexion sécurisée SSL. Mon problème est que mon programme me renvoie toujours l'erreur ERROR 2026 : SSL connection error
Voila comment je m'y suis pris :
Tout d'abord, il faut préciser que je travaille sur Windows XP et Visual C++ 2005. J'utilise un serveur MySQL 5.0.27 et la librairie mysql++ 2.2.0
J'ai commencé par créer mes certificats avec OpenSSL 0.9.8.d et j'ai configuré mon serveur en modifiant le fichier my.ini :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
[client]
port=3306
ssl-ca = "E:/SSL/cacert.pem"
ssl-capath = "E:/SSL/newcerts/"
ssl-cert = "E:/SSL/client-cert.pem"
ssl-key = "E:/SSL/client-key.pem"
ssl-cipher = ALL
...
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
ssl-ca = "D:/MySQL/SSL/cacert.pem"
ssl-capath = "D:/MySQL/SSL/newcerts/"
ssl-cert = "D:/MySQL/SSL/server-cert.pem"
ssl-key = "D:/MySQL/SSL/server-key.pem"
ssl-cipher = ALL |
Ensuite, j'ai créé un utilisateur ayant la possibilité de se connecter en local ou a distance avec la commande GRANT... REQUIRE SSL
J'ai essayé de me connecter avec le client MySQL :
mysql -u Fred -ppassword --ssl, jusqu'ici pas de problèmes, ça marche bien
Au cas où, j'ai vérifié les variables SSL du serveur avec la commande SHOW STATUS LIKE "%ssl%"; là encore pas de problème, tout est ok
Enfin, j'ai essayé de me connecter au serveur avec mon programme dont voici la fonction de connection :
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
|
bool ConnectDB( Connection &connection, const char * pNameDB, const char * pHost, const char * pUser, const char * pPassword )
{
int iPort = 3306;
unsigned int iClientFlag = CLIENT_SSL;
const char * pKey = "..\\SSL\\client-key.pem";
const char * pCert = "..\\SSL\\client-cert.pem";
const char * pCA = "..\\SSL\\cacert.pem";
const char * pCApath = "..\\SSL\\newcerts\\";
const char * pCipher = "ALL";
//connexion
try
{
connection.enable_ssl( pKey, pCert, pCA, pCApath, pCipher );
connection.connect( pNameDB, pHost, pUser, pPassword, iPort, 0, 60, 0, iClientFlag );
}
catch ( ConnectionFailed error )
{
cout << "ConnectDB() failed" << endl;
cout << "erreur connection :" << error.what() << endl;
cout << "num err :" << connection.errnum() << endl;
return false;
}
return true;
} |
Ce code me fait toujours une erreur "SSL connection error", j'ai essayé de donner les chemins relatifs et absolus pour les certificats, j'ai aussi essayé la fonction "set_option()" pour activer l'option opt_secure_auth mais cette fonction me renvoie toujours false, je ne suis pas arrivé à la faire marcher.
Est ce que quelqu'un pourrait me dire ce qui ne va pas ?!!!
Merci d'avance pour le temps que certains passeront à lire mon post, j'espère avoir respecté les règles, c'est la première fois que je poste sur un forum.