Rappelons d'abord que phpMyAdmin est une application web et une interface qui permet de gérer les bases de données MySQL et MariaDB,
Comme nous l'avons vu et testé précédemment, phpMyAdmin est accessible via l'adresse IP du serveur et sans https, ce qui n'est pas forcement très bien en terme de sécurité.
L'idée est d'utiliser un sous-domaine en https afin de le sécuriser.
Voilà les manipulations à faire pour changer cela :
1°/ Désactiver l’accès via l’adresse par défaut.
sudo nano /etc/phpmyadmin/apache.confCommenter la ligne :
Alias /phpmyadmin /usr/share/phpmyadmin=>
#Alias /phpmyadmin /usr/share/phpmyadminDans le répertoire
/etc/apache2/sites-available/créer un fichier .conf pour un nouveau site :
sudo nano mysqladmin.monsite.com.confServerName mysqladmin.monsite.com
ServerAlias mysqladmin.monsite.com
DocumentRoot /usr/share/phpmyadmin sudo a2ensite mysqladmin.monsite.com
sudo systemctl restart apache2Maintenant vous devriez pouvoir accéder à phpMyAdmin par :
http://mysqladmin.monsite.comsudo certbot --apacheMaintenant l'accès s'effectue par :
https://mysqladmin.monsite.comVous pouvez ajouter une protection supplémentaire par mot de passe.
Pour cela modifier le fichier .conf avec la directive "AllowOverride All" comme ci-dessous :
ServerName mysqladmin.monsite.com
ServerAlias mysqladmin.monsite.com
DocumentRoot /usr/share/phpmyadmin
AllowOverride All
Puis dans le répertoire de phpmyadmin :
sudo nano /usr/share/phpmyadmin/.htaccesspuis :
AuthUserFile /usr/share/phpmyadmin/.htpasswd
AuthName "Password Protected Area"
AuthType Basic
require valid-user
et enfin créer le mot de passe avec la commande :
sudo htpasswd -c /usr/share/phpmyadmin/.htpasswd username
puis redémarrer Apache afin de prendre en compte la modification :sudo service apache2 restart