Salut à tous.
Je vais aborder le paramétrage SSL dans PhpMyAdmin.
Paramétrage de test
Pour ce faire, nous devons aussi configurer MySql, sinon cela ne va pas fonctionner correctement.
Il faut se rendre dans le répertoire "/data" de votre MySql, et de repérer les certificats qui sont à notre disposition.
Pour la version 8.0.16, nous avons :
--> ca.pem
--> ca-key.pem
--> client-cert.pem
--> client-key.pem
--> private_key.pem
--> public_key.pem
--> server-cert.pem
--> server-key.pem
Voici ce que j'ai mis dans le fichier "my.ini" :
Donc, coté serveur MySql, il faut mettre le certificat serveur.
Et voici ce que j'ai mis dans le fichier "config.inc.php :
Coté client (phpmyadmin), il faut mettre le certificat client.
Pour le SSL Ciphers, il faut mettre exactement la même chose des deux cotés.
Pourquoi SSL Verify est à false ?
En fait, ces certificats ne correspondent pas à votre nom de site.
Dans mon cas, j'utilise "ht tps://phpmyadmin".
Si vous mettez true, il va vérifier la conformité entre le site et le certificat.
Sauf que dans cet exemple, il n'y a pas de conformité et donc, il y aura une erreur lors de la connexion.
J'ai buté sur deux problèmes :
1) je n'ai pas bien compris ce que je devais mettre pour le SSL Ciphers.
2) j'ai mis SSL Verify à true, sans bien comprendre que cela était bloquant.
Paramétrage réel
J'ai créé des certificats, sauf que je n'ai pas bien compris ce qui doit correspondre au certificat serveur.
Pour ce faire, je me suis créé un batch windows qui va entreprendre ce long travail fastidieux, si je devais le faire à la main.
J'utilise déjà ses certificats auto signé dans mon wampserver sous la racine "Artemus & Cie" et cela fonctionne parfaitement.
Ce sont ses certificats qui sont renseignées dans mon wampserver, dans les variables :
Voici ce que j'ai créé pour le site phpmyadmin :
Dois-je comprendre que c'est le même certificat qui sert aussi bien au client qu'au serveur ?
Je n'ai pas bien compris cette différence.
@+
Je vais aborder le paramétrage SSL dans PhpMyAdmin.
Paramétrage de test
Pour ce faire, nous devons aussi configurer MySql, sinon cela ne va pas fonctionner correctement.
Il faut se rendre dans le répertoire "/data" de votre MySql, et de repérer les certificats qui sont à notre disposition.
Pour la version 8.0.16, nous avons :
--> ca.pem
--> ca-key.pem
--> client-cert.pem
--> client-key.pem
--> private_key.pem
--> public_key.pem
--> server-cert.pem
--> server-key.pem
Voici ce que j'ai mis dans le fichier "my.ini" :
ssl-ca = ca.pem ssl-cert = server-cert.pem ssl-key = server-key.pem ssl-cipher = DHE-RSA-AES128-GCM-SHA256
Donc, coté serveur MySql, il faut mettre le certificat serveur.
Et voici ce que j'ai mis dans le fichier "config.inc.php :
/*----------------------------*/ /* Encrypted connection to DB */ /*----------------------------*/ $cfg['Servers'][$i]['ssl'] = true; $cfg['Servers'][$i]['ssl_key'] = 'F:/Wamp/bin/mysql/mysql8.0.16/data/client-key.pem'; $cfg['Servers'][$i]['ssl_cert'] = 'F:/Wamp/bin/mysql/mysql8.0.16/data/client-cert.pem'; $cfg['Servers'][$i]['ssl_ca'] = 'F:/Wamp/bin/mysql/mysql8.0.16/data/ca-cert.pem'; $cfg['Servers'][$i]['ssl_ca_path'] = 'F:/Wamp/bin/mysql/mysql8.0.16/data/'; $cfg['Servers'][$i]['ssl_ciphers'] = 'DHE-RSA-AES128-GCM-SHA256'; $cfg['Servers'][$i]['ssl_verify'] = false;
Coté client (phpmyadmin), il faut mettre le certificat client.
Pour le SSL Ciphers, il faut mettre exactement la même chose des deux cotés.
Pourquoi SSL Verify est à false ?
En fait, ces certificats ne correspondent pas à votre nom de site.
Dans mon cas, j'utilise "ht tps://phpmyadmin".
Si vous mettez true, il va vérifier la conformité entre le site et le certificat.
Sauf que dans cet exemple, il n'y a pas de conformité et donc, il y aura une erreur lors de la connexion.
J'ai buté sur deux problèmes :
1) je n'ai pas bien compris ce que je devais mettre pour le SSL Ciphers.
2) j'ai mis SSL Verify à true, sans bien comprendre que cela était bloquant.
Paramétrage réel
J'ai créé des certificats, sauf que je n'ai pas bien compris ce qui doit correspondre au certificat serveur.
Pour ce faire, je me suis créé un batch windows qui va entreprendre ce long travail fastidieux, si je devais le faire à la main.
J'utilise déjà ses certificats auto signé dans mon wampserver sous la racine "Artemus & Cie" et cela fonctionne parfaitement.
Ce sont ses certificats qui sont renseignées dans mon wampserver, dans les variables :
SSLEngine on SSLCertificateFile "${SRVROOT}/conf/Certificat/Phpmyadmin/Phpmyadmin.crt" SSLCertificateKeyFile "${SRVROOT}/conf/Certificat/Phpmyadmin/Phpmyadmin.key" # SSLCACertificatePath "${SRVROOT}/conf/Certificat/Ca" SSLCACertificateFile "${SRVROOT}/conf/Certificat/Ca/Ca.crt"
Voici ce que j'ai créé pour le site phpmyadmin :
phpmyadmin.crt --> certificat client phpmyadmin.csr --> demande de certificat (Cerficat Signing Request) phpmyadmin.der --> autre certificat phpmyadmin.key --> clef privée RSA phpmyadmin.p7b --> contient certificat CA + certificat PhpMyAdmin phpmyadmin.pbc --> clef public (Plaintext Block Chaining) phpmyadmin.pfx --> conversion pem vers pfx phpmyadmin.rnd --> random
Dois-je comprendre que c'est le même certificat qui sert aussi bien au client qu'au serveur ?
Je n'ai pas bien compris cette différence.
@+