Protéger par mot de passe un dossier sur son serveur web (nginx)

secret
Dernière mise a jour 10 Août 2022 a 11:11 am

Aujourd’hui un petit pense bête pour savoir comment mettre un mot de passe pour protéger l’accès à un dossier hébergé sur ton serveur web.A titre perso j’utilise cette méthode pour accéder aux photos mises en ligne régulièrement par une caméra. Une petite sécurité sans prétention qui aura au moins le mérite d’éloigner les « kevin du darkweb« .

Tu connais déjà peut être la manip sous apache (htaccess), et bien sous nginx on sécurise un peu sur le même principe :
– une directive serveur à placer dans le fichier de conf de ton vhost
– un fichier qui contient les identifiants login/password requis pour accéder au contenu du dossier

Mise en situation:

On va créer un dossier appelé « secret » dont on veut restreindre l’accès sur notre serveur web .
mkdir -p /var/www/html/secret

Créer le fichier .htpasswd

Dans un shell, exécute la commande suivante:
htpasswd -c /var/www/html/secret/.htpasswd login

« login » étant le nom d’utilisateur, tu mets celui que tu veux. Et ensuite tu rentres 2 fois le mot de passe que tu utiliseras pour t’authentifier.

htpasswd

Configurer Nginx

On va utiliser la directive « auth_basic« . Donc édite le fichier de conf de ton vhost en ajoutant ses lignes:

location / {
        try_files $uri $uri/ =404;
        auth_basic "Restricted Content";
        auth_basic_user_file /var/www/html/dossier_sensible/.htpasswd;
    }

On redémarre le service pour la prise en compte de la nouvelle configuration:

 systemctl restart nginx

T’as plus qu’à tester 😉

secret password

Be the first to comment

Leave a Reply

Votre adresse de messagerie ne sera pas publiée.


*