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

MySQL Discussion :

[phpMyAdmin] [MariaDB] Connexion au serveur en SSL


Sujet :

MySQL

  1. #1
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut [phpMyAdmin] [MariaDB] Connexion au serveur en SSL
    Salut all,
    Je cherche a utiliser le SSL pour la connexion de pma à mysql.
    La config ssl dans config.inc.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['ssl'] = true;
        $cfg['Servers'][$i]['ssl_verify'] = false;
        $cfg['Servers'][$i]['ssl_key'] = '/etc/mysql/certificat/server.key';
        $cfg['Servers'][$i]['ssl_cert'] = '/etc/mysql/certificat/server.crt';
        $cfg['Servers'][$i]['ssl_ca'] = '/etc/mysql/certificat/ca.pem';
        $cfg['Servers'][$i]['ssl_ca_path'] = '/etc/mysql/certificat/';
    Mais ca ne fonctionne pas avec plein d'erreurs sur la page de connexion :
    - mysqli::real_connect(): This stream does not support SSL/crypto
    - mysqli::real_connect(): Cannot connect to MySQL by using SSL
    - mysqli::real_connect(): (HY000/2002): (trying to connect via (null))
    - La connexion au « controluser » telle que définie dans la configuration a échoué.
    - mysqli::real_connect(): This stream does not support SSL/crypto
    - mysqli::real_connect(): Cannot connect to MySQL by using SSL
    - mysqli::real_connect(): (HY000/2002): (trying to connect via (null))
    Si je desactive ce ssl, ca fonctionne nickel et je me connecte a pma.

    Le ssl est ok du cote de mariadb :
    +---------------------+----------------------------------+
    | Variable_name | Value |
    +---------------------+----------------------------------+
    | have_openssl | YES |
    | have_ssl | YES |
    | ssl_ca | /etc/mysql/certificat/ca.pem |
    | ssl_capath | |
    | ssl_cert | /etc/mysql/certificat/server.crt |
    | ssl_cipher | |
    | ssl_crl | |
    | ssl_crlpath | |
    | ssl_key | /etc/mysql/certificat/server.key |
    | version_ssl_library | OpenSSL 3.0.9 30 May 2023 |
    +---------------------+----------------------------------+
    J'ai cherche et cherche, mais rien trouve pour resoudre ce probleme.
    Avez vous une solution, idees ou suggestions ?
    Merci par avance.
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  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 066
    Points
    19 066
    Par défaut
    Salut Danyel.

    Coté MariaDB, as tu configuré le SSL ?

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

  3. #3
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Coté MariaDB, as tu configuré le SSL ?@+
    Ben oui, regarde le second cadre de mon post
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  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 066
    Points
    19 066
    Par défaut
    Donc, tu as pu créer un certificat SSL opérationnel quand tu accèdes à ta base de données.

    Voici le paramétrage de ma base "test" :
    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
    <?php
    /*-----------------------------------------------------*/
    /* Informations pour la connexion à la base de données */
    /*-----------------------------------------------------*/
     
    $Connexion  = "mysql:host=127.0.0.1;port=3306;dbname=test";
    $User       = "test";
    $Password   = "test";
     
    $Params     = array(
    	PDO::MYSQL_ATTR_INIT_COMMAND			=> "SET NAMES latin1",
    	PDO::ATTR_CASE							=> PDO::CASE_LOWER,
    	PDO::ATTR_ERRMODE						=> PDO::ERRMODE_EXCEPTION,
    	PDO::ATTR_PERSISTENT					=> false,
    	PDO::MYSQL_ATTR_SSL_CA					=> "f:/Wamp/bin/apache/apache2.4.57/conf/certificats/General/Ca.pem",
    	PDO::MYSQL_ATTR_SSL_KEY					=> "f:/Wamp/bin/apache/apache2.4.57/conf/certificats/General/Client-key.pem",
    	PDO::MYSQL_ATTR_SSL_CERT				=> "f:/Wamp/bin/apache/apache2.4.57/conf/certificats/General/Client-cert.pem",
    	PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT	=> true
    );
     
    /*----------------------*/
    /* Connexion au Serveur */
    /*----------------------*/
     
    try {
    	$link = new PDO($Connexion,$User,$Password,$Params);
    }
    catch (Exception $e)
    {
    	echo "<br>Connection à MySql impossible : ", htmlentities($e->getMessage());
    	die();
    }
    ?>
    Le paramétrage que j'utilise dans le fichier "mysql.ini" (je suis sous windows) :
    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
    # ------------------ #
    #     Client SSL     #
    # ------------------ #
     
    ssl-mode   = verify_identity
    ssl-ca     = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\ca.pem
    ssl-capath = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General
    ssl-cert   = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\client-cert.pem
    ssl-key    = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\client-key.pem
     
    # ----------- #
    #     SSL     #
    # ----------- #
     
    auto-generate-certs      = off
     
    admin-ssl-ca             = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\ca.pem
    admin-ssl-capath         = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General
    admin-ssl-cert           = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\server-cert.pem
    admin-ssl-key            = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\server-key.pem
    admin-tls-version        = TLSv1.3
     
    ssl-ca                   = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\ca.pem
    ssl-capath               = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General
    ssl-cert                 = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\server-cert.pem
    ssl-key                  = F:\\Wamp\\bin\\apache\\apache2.4.57\\conf\\certificats\\General\\server-key.pem
     
    tls-version              = TLSv1.3
    require-secure-transport = off
    Et le paramétrage sous "PhpMyAdmin" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /*----------------------------*/
    /* Encrypted connection to DB */
    /*----------------------------*/
     
    $cfg['Servers'][$i]['ssl']					= true;
    $cfg['Servers'][$i]['ssl_ca']				= 'F:/Wamp/bin/apache/apache2.4.57/conf/certificats/General/Ca.pem';
    $cfg['Servers'][$i]['ssl_ca_path']			= 'F:/Wamp/bin/apache/apache2.4.57/conf/certificats/General';
    $cfg['Servers'][$i]['ssl_cert']				= 'F:/Wamp/bin/apache/apache2.4.57/conf/certificats/General/Client-cert.pem';
    $cfg['Servers'][$i]['ssl_key']				= 'F:/Wamp/bin/apache/apache2.4.57/conf/certificats/General/Client-key.pem';
    $cfg['Servers'][$i]['ssl_cipher']			= 'TLS_AES_256_GCM_SHA384';
    $cfg['Servers'][$i]['ssl_verify']			= true;
    Il faut jouer sur les paramètres suivants :
    --> "require-secure-transport" à "off",
    --> "ssl_verify" à "false"
    et tu mets le minimum requit pour :
    --> "ssl-mode".

    J'ai atteint le niveau "verify_identity" (ssl-mode) mais pas "verify_ca" car j'ai un certificat auto-signé.
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Merci Artemus24, je vais tester tout ca et je reviens apres.
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  6. #6
    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 066
    Points
    19 066
    Par défaut
    Tu peux reprendre le certificat produit par MariaDB mais je te conseille de le mettre autre part, comme moi, que dans le répertoire principale de ton serveur MariaDB car il sera susceptible d'être écrasé par une autre version.

    A partir du moment où tu es en SSL, tous tes échanges avec ta base de données seront chiffrés.
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Merci artemus, mais meme ta config ne fonctionne pas
    (enfin ca m'a permis derajouter le ssl_cypher)

    Bon apres .......................... beaucoup de tests et de recherches
    Un des probleme est le fait que des qu'on mets ssl sur on, il aime pas qu'on lui mette 'localhost' pour host. Il lui faut une ip x.x.x.x (127.0.0.1)
    Ce qui entraine qu'il faut changer le host (en mettant une ip) pour les comptes utilisateurs.
    Apres ca et qq corrections mineures, le ssl est bien utilise.
    MAIS il y encore un probleme car impossible de mettre ssl_verify sur on, car la verification echoue tout le temps (que ce soit en auto-certificate ou meme du letsencrypt) (je suis preneur pour une solution)

    Conclusion : pas simple tout ca !!!
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  8. #8
    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 066
    Points
    19 066
    Par défaut
    Citation Envoyé par Danyel
    Merci artemus, mais meme ta config ne fonctionne pas
    Je te rassures, ma configuration fonctionne chez moi.
    Quand j'entre dans phpmyadmin, j'ai bien "Connexion au serveur : SSL est utilisé".

    Citation Envoyé par Danyel
    Bon apres .......................... beaucoup de tests et de recherches
    De mon coté, cela ne s'est pas fait en 30 secondes.
    J'ai lu ce que j'ai pu trouver sur le net.
    J'ai fait des tests et quand j'ai enfin compris mon problème, je l'ai résolu.
    Les explications données sur le net ne sont pas du tout clair.

    Je n'utilise plus, même en local, le HTTP (port 80) mais le HTTPS (port 443) dans mes navigateurs.
    J'ai configuré mes VirtualHost pour qu'ils fonctionnent qu'en HTTPS.

    Je ne te l'ai pas dit, mais il faut aussi configurer en SSL Apache, sinon cela risque de ne pas fonctionner.
    C'est assez lourd comme configuration parce que cela implique des modifications à faire à plusieurs endroits.

    Citation Envoyé par Danyel
    Un des probleme est le fait que des qu'on mets ssl sur on, il aime pas qu'on lui mette 'localhost' pour host. Il lui faut une ip x.x.x.x (127.0.0.1)
    Non, pas du tout. Dans mon fichier Hosts sous windows, j'ai bien fait l'association (localhost ; 127.0.0.1) et j'accède bien en mettant "localhost" dans la barre des adresses de mon navigateur. Je précise que je le fais en https et non en http.

    Est-ce que le SSL sous Apache est configuré ?

    Citation Envoyé par Danyel
    Ce qui entraine qu'il faut changer le host (en mettant une ip) pour les comptes utilisateurs.
    En local, j'ai plusieurs couples (nom de site ; adresse IP) et cela ne me pose aucun problème.
    Qu'est-ce que tu nommes "comptes utilisateurs" ?
    Tous les accès au WEB se font par un nom de site, géré par Apache.
    Tous les accès à MySql se font par une connexion qui doit utiliser SSL.
    En fait, j'utilise deux certificats dans mes connexions SSL, l'un pour Apache et l'autre pour MySql.

    Citation Envoyé par Danyel
    MAIS il y encore un probleme car impossible de mettre ssl_verify sur on, car la vérification échoue tout le temps (que ce soit en auto-certificate ou meme du letsencrypt) (je suis preneur pour une solution)
    Tu dois mettre "require-secure-transport = off" dans le fichier mysql.ini, sinon c'est bloquant.

    Citation Envoyé par Danyel
    Conclusion : pas simple tout ca !!!
    C'est un euphémisme !
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  9. #9
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Est-ce que le SSL sous Apache est configuré ?
    Tout est sous ssl, d'ou mon desir de le faire aussi pour phpmyadmin ,)
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [phpmyadmin] connexion à un serveur distant.
    Par troumad dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 23/12/2022, 10h32
  2. WampServer - PhpMyAdmin - Connexion au serveur MySQL non permise
    Par manonbecle dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 30/07/2017, 01h07
  3. Réponses: 2
    Dernier message: 23/03/2016, 10h16
  4. Réponses: 6
    Dernier message: 16/06/2015, 22h30
  5. Réponses: 4
    Dernier message: 04/07/2002, 12h31

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