IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

[mysql++] SSL connection error


Sujet :

Bibliothèques

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut [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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    J'ai trouvé la solution à mon problème. En fait, il y a des fichiers de configuration qu'il faut exécuter lorsqu'on travail sous Linux permettant de détecter si le SSL est actif ou non sur le serveur. Ces fichiers de configuration définissent une macro HAVE_MYSQL_SSL_SET dans le fichier connection.cpp de mysql++. Si ce flag n'est pas défini, la fonction enable_ssl() de mysql++ ne marchera jamais. Or, ces fichiers de configuration n'ont pas besoin d'être exécutés sous Windows, mais du coup le flag n'est jamais défini. Il faut donc le définir à la main dans les options de compilation du projet mysql++ puis reconstruire la librairie.

    Voila, j'espère que ca pourra aider quelqu'un d'autre !!

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/04/2013, 14h44
  2. MySQL M/S: error connecting to master root@192.168.1.25 ..
    Par jamboo dans le forum Administration
    Réponses: 8
    Dernier message: 22/12/2011, 17h31
  3. Librairie curl : 35 SSL CONNECT ERROR
    Par thomas.fr dans le forum Windows
    Réponses: 0
    Dernier message: 04/02/2009, 16h31
  4. Cherche log : mysql max connect error
    Par Hitomi_Kay dans le forum Débuter
    Réponses: 0
    Dernier message: 10/03/2008, 09h02
  5. [MySql] Se connecter sous Free???
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/05/2004, 23h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo