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

Administration MySQL Discussion :

Accès refusé avec accès en ssl ou X509


Sujet :

Administration MySQL

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Points : 124
    Points
    124
    Par défaut Accès refusé avec accès en ssl ou X509
    Bonsoir,

    J'ai un sérieux problème pour avoir une connexion cryptée avec un client Windows (API C) et un serveur Windows (WAMP)

    Sous Linux
    ----------
    avec mysql_real_connect() sous linux avec SSL ou X509 tout est ok

    Sous Windows
    --------------
    Pour ouvrir une console mysql avec tous les paramètres pour le ssl tout est ok

    Ensuite, les bons paramètres je les mets dans my.ini de mysql de WAMP et j'ouvre une console mysql mais cette fois sans les paramètres ssl (puisqu'ils seront lus maintenant depuis my.ini) et tout est ok

    J'essaie maintenant d'utiliser l'API C comme sous Linux et de me connecter avec mysql_real_connect() mais j'ai l'erreur suivante :

    Accès refusé pour l'utilisateur: 'xxxx_SSL'@'@yyyyyyy' (mot de passe: OUI)

    Pourquoi j'ai 2 fois @ !!! apparemment c'est le 2èmme qui est de trop, mais il viens d'où?

    Si le serveur ne veux pas de SSL ou de X509 alors pas d'erreur, donc le user existe bien et la machine aussi.

    Si je veux du SSL ou X509 j'ai toujours ces 2 * @

    Même résultat si avant mysql_real_connect() je mets mysql_ssl_set() avec les bons paramètre comme pour ouvrir une console mysql

    Avec :
    MySQL client info : 5.7.24
    MySQL server info : 5.7.19

    que puis-je faire?

    Merci d'avance, car j'y ai passé déjà plusieurs heures

    Salutations

    Philippe

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut CAMIC.

    Citation Envoyé par CAMIC
    J'ai un sérieux problème
    Encore un autre problème ?

    Citation Envoyé par CAMIC
    avoir une connexion cryptée
    Vous voulez dire en utilisant un certificat SSL.

    Citation Envoyé par CAMIC
    Pour ouvrir une console mysql
    La console mysql n'existe pas. Il s'agit de la console Windows, donc d'une invite commande où l'on lance l'application "mysql".

    Citation Envoyé par CAMIC
    les bons paramètres je les mets dans my.ini de mysql de WAMP
    Quels sont les paramètres que vous avez définies dans le fichier my.ini de wampserver ?

    Citation Envoyé par CAMIC
    J'essaie maintenant d'utiliser l'API C comme sous Linux et de me connecter avec mysql_real_connect() mais j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Accès refusé pour l'utilisateur: 'xxxx_SSL'@'@yyyyyyy' (mot de passe: OUI)
    L'erreur indique que vous n'avez pas le bon compte, puisque celui-ci a un accès refusé.
    Êtes-vous certain que vous utilisez le bon compte ?

    Avez-vous testé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    show variables LIKE "%ssl%";
    dans votre serveur mysql ?

    Et en ce qui concerne les comptes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select user,host,ssl_type from mysql.user;
    Avez-vous renseigné quelque chose dans la colonne sl_type ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Points : 124
    Points
    124
    Par défaut Pour répondre à Artemus24
    Salut Artemus24,

    Oui, j'ai maintenant 2 problèmes! Pour le 1er ça peut attendre, mais pas pour le 2ème

    En fait j'utilise un certificat pour le CA et une clé et un certificat pour le client.

    j'ai utilisé la terminologie de WAMP, dans l'absolu, effectivement je lance une fenêtre CMD et dedans je lance le programme mysql avec les paramètres adéquats et donc bien finalement une console mysql!

    Concernant le contenu de my.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [client]
    ;password = your_password
    port = 3306
    socket = /tmp/mysql.sock
    ssl-ca = "E:\\Philippe\\Test\\ConcentratorSolution\\Configs\\Common1\\Cert\\ca-cert.pem"
    ssl-cert = "E:\\Philippe\\Test\\ConcentratorSolution\\Configs\Common1\\Cert\\MySQL-client-cert.pem"
    ssl-key = "E:\\Philippe\\Test\\ConcentratorSolution\\Configs\\Common1\\Cert\\MySQL-client-ppl-key.pem"
    Voila ce que donne show variables LIKE "%ssl%";

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    +---------------+--------------------------------------------------+
    | Variable_name | Value                                            |
    +---------------+--------------------------------------------------+
    | have_openssl  | YES                                              |
    | have_ssl      | YES                                              |
    | ssl_ca        | C:/OpenSSL-Win64/bin/ca-cert.pem                 |
    | ssl_capath    |                                                  |
    | ssl_cert      | C:/OpenSSL-Win64/bin/MySQL-server-cert.pem       |
    | ssl_cipher    |                                                  |
    | ssl_crl       |                                                  |
    | ssl_crlpath   |                                                  |
    | ssl_key       | C:/OpenSSL-Win64/bin/MySQL-server-ppless-key.pem |
    +---------------+--------------------------------------------------+
    et pour select user,host,ssl_type from mysql.user;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    +-----------------+------------------+----------+
    | user            | host             | ssl_type |
    +-----------------+------------------+----------+
    | root            | localhost        |          |
    | mysql.session   | localhost        |          |
    | mysql.sys       | localhost        |          |
    | Concentrato     | 192.168.1.24     |          |
    | Concentrato     | philippe-desktop | ANY      |
    | Concentrato_SSL | %                | X509     |
    | Concentrato     | 192.168.1.50     |          |
    +-----------------+------------------+----------+
    8 rows in set (0.00 sec)
    J'ai bien pour Concentrato_SSL le ssl_type X509

    je répète, si je vais dans une fenêtre cmd et puis ensuite dans le répertoire où sont les fichiers pour le ssl et que je lance msql comme ceci :

    E:\wamp64\bin\mysql\mysql5.7.19\bin\mysql -u Concentrato_SSL -p -h 192.168.1.24 --ssl-ca=./ca-cert.pem --ssl-cert=./MySQL-client-cert.pem --ssl-key=./MySQL-client-ppl-key.pem

    ou puisque my.ini est rempli comme cela :

    E:\wamp64\bin\mysql\mysql5.7.19\bin\mysql -u Concentrato_SSL -p -h 192.168.1.24

    c'est tout bon, donc les fichiers sont donc nickel puisque j'ai bien

    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
     
    --------------
    E:\wamp64\bin\mysql\mysql5.7.19\bin\mysql  Ver 14.14 Distrib 5.7.19, for Win64 (
    x86_64)
     
    Connection id:          70
    Current database:
    Current user:           Concentrato_SSL@LATITUDE
    SSL:                    Cipher in use is DHE-RSA-AES256-SHA
    Using delimiter:        ;
    Server version:         5.7.19 MySQL Community Server (GPL)
    Protocol version:       10
    Connection:             192.168.1.24 via TCP/IP
    Server characterset:    latin1
    Db     characterset:    latin1
    Client characterset:    cp850
    Conn.  characterset:    cp850
    TCP port:               3306
    Uptime:                 15 hours 4 min 41 sec
     
    Threads: 3  Questions: 494  Slow queries: 0  Opens: 172  Flush tables: 1  Open t
    ables: 165  Queries per second avg: 0.009
    --------------
    Par contre si je mets un mot de passe faux :

    ERROR 1045 (28000): AccSs refus' pour l'utilisateur: 'Concentrato_SSL'@'@LATITUDE' (mot de passe: OUI)

    donc c'est pas l'histoire des 2 @ mais ailleurs

    Quand je lance mysql_real_connect() j'ai ceci :

    Accès refusé pour l'utilisateur: 'Concentrato_SSL'@'@LATITUDE' (mot de passe: OUI)

    Si je supprime ssl_type je me connecte bien, mais j'ai pas mon cryptage!

    A+

    Philippe

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut CAMIC.

    Il n'est pas nécessaire dans le fichier my.ini, de mettre des anti-slash.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [client]
    ;password = your_password
    port = 3306
    socket = /tmp/mysql.sock
    ssl-ca = "E:/Philippe/Test/ConcentratorSolution/Configs/Common1/Cert/ca-cert.pem"
    ssl-cert = "E:/Philippe/Test/ConcentratorSolution/Configs/Common1/Cert/MySQL-client-cert.pem"
    ssl-key = "E:/Philippe/Test/ConcentratorSolution/Configs/Common1/Cert/MySQL-client-ppl-key.pem"
    Citation Envoyé par CAMIC
    Voila ce que donne show variables LIKE "%ssl%";
    Vous avez bien le SSL d'activé et vos fichiers ssl sont-ils bien ceux du serveur SSL ?
    Je pense que oui puisque vous pouvez vous connecter avec votre certificat SSL.

    Citation Envoyé par CAMIC
    et pour select user,host,ssl_type from mysql.user;
    La colonne ssl_type est bien renseignée pour le compte "Concentrato_SSL".

    Citation Envoyé par CAMIC
    donc c'est pas l'histoire des 2 @ mais ailleurs
    C'est juste un problème d'affiche sans gravité.

    Citation Envoyé par CAMIC
    Quand je lance mysql_real_connect() j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Accès refusé pour l'utilisateur: 'Concentrato_SSL'@'@LATITUDE' (mot de passe: OUI)
    Si je supprime ssl_type je me connecte bien, mais j'ai pas mon cryptage!
    Normalement, dans "my.ini" serveur, vous devez déclarer les accès à vos fichiers SSL serveur dans la section "[wampmysqld]".
    Et dans "my.ini" client, vous devez déclarer les accès à vos fichiers SSL client dans la section "[client]".

    Autre point, lors d'une connexion, vous devez déclarer les fichiers SSL client ainsi :
    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
    <?php
    $db = mysqli_init();
    mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
     
    $db->ssl_set('/etc/mysql/ssl/client-key.pem', '/etc/mysql/ssl/client-cert.pem', '/etc/mysql/ssl/ca-cert.pem', NULL, NULL);
     
    $link = mysqli_real_connect ($db, 'ip', 'user', 'pass', 'db', 3306, NULL, MYSQLI_CLIENT_SSL);
    if (!$link)
    {
      die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
    }
    else
    {
      $res = $db->query('SHOW TABLES;');
      print_r ($res);
      $db->close();
    }
    ?>
    --> https://stackoverflow.com/questions/...h-ssl-from-php

    Sinon, je ne vois pas d'erreur flagrante à votre problème.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 154
    Points : 124
    Points
    124
    Par défaut Je ne trouve justement pas ce qu'il y a de faux!
    Voici mon code
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    		TRACE_INFO(("key     : '%s'", pcKEY));
    		TRACE_INFO(("cert    : '%s'", pcCERT));
    		TRACE_INFO(("ca      : '%s'", pcCA));
    		TRACE_INFO(("ca path : '%s'", pcCA_PATH));
    		TRACE_INFO(("cipher  : '%s'", pcCIPHER));
     
    		mysql_ssl_set(	&g_poConfigDB->sMySQL,
    						pcKEY, pcCERT,
    						pcCA,
    						pcCA_PATH,
    						pcCIPHER);
     
    //		unsigned int bfuiMode = SSL_MODE_REQUIRED;
    //		mysql_options(&g_poConfigDB->sMySQL, MYSQL_OPT_SSL_MODE, &bfuiMode);
    //		bfuiMode = 0;
    //		mysql_options(&g_poConfigDB->sMySQL, MYSQL_OPT_LOCAL_INFILE, &bfuiMode);
    	}
     
    	unsigned int bfuiMode = true;
    //	mysql_options(&g_poConfigDB->sMySQL, MYSQL_OPT_SSL_VERIFY_SERVER_CERT, &bfuiMode);
     
    	psConnection = mysql_real_connect(	&g_poConfigDB->sMySQL,
    										pcIP,
    										pcUSER, acFullPassword,	// User and password
    										"concentrator",				// name of database
    										iPort,				// port for connect to server
    										NULL,						// socket
    										0 /*CLIENT_SSL*/ /* is internaly*/);					// bitsfield
    	if (!psConnection)
    	{
    		TRACE_ERROR(("mysql_real_connect() failed : %s", mysql_error(&g_poConfigDB->sMySQL)));
    		cout << "mysql_real_connect() failed : " << mysql_error(&g_poConfigDB->sMySQL) << endl;
     
    		TRACE_OUT();
    		return false;
    	}
    Mon log dit bien

    00002660 | HandleDB handledb.cpp 191 3 key : 'E:/Philippe/Test/ConcentratorSolution/Configs/Common1/Cert/MySQL-client-ppl-key.pem'
    00002660 | HandleDB handledb.cpp 192 3 cert : 'E:/Philippe/Test/ConcentratorSolution/Configs/Common1/Cert/MySQL-client-cert.pem'
    00002660 | HandleDB handledb.cpp 193 3 ca : 'E:/Philippe/Test/ConcentratorSolution/Configs/Common1/Cert/ca-cert.pem'
    00002660 | HandleDB handledb.cpp 194 3 ca path : '(null)'
    00002660 | HandleDB handledb.cpp 195 3 cipher : '(null)'

    C'est les mêmes fichiers que pour la "console" mysql qui se connecte elle normalement sur mon serveur mysql en SSL ou en X509

    Selon la doc, le dernier paramètre ne doit pas être CLIENT_SSL car c'est mis en interne

    si je mets quand même CLIENT_SSL j'ai l'erreur suivante :

    Mauvais 'handshake'

    Donc, le problème n'est pas les fichiers puisque via console j'ai bien du X509 entre les 2 machines.

    C'est l'API sous windows qui pose problème car sous debian, c'est nickel

    A+

    Philippe

Discussions similaires

  1. Accès refusé avec une autre session administrateur
    Par table32 dans le forum Windows 7
    Réponses: 3
    Dernier message: 16/02/2014, 11h38
  2. [Disque Dur] Comment récupérer mes données avec accès refusé
    Par ploukinet dans le forum Composants
    Réponses: 2
    Dernier message: 31/01/2009, 15h36
  3. Réponses: 1
    Dernier message: 03/05/2008, 17h01
  4. [AJAX] acces refusé sur execution script ajax avec IE
    Par avogadro dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/01/2007, 11h34
  5. [JDBC] Acces refusé a mysql avec applet
    Par romuluslepunk dans le forum Applets
    Réponses: 30
    Dernier message: 19/04/2006, 17h49

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