Voici comment sécuriser un site avec Basic Authentication sur NginX

La sécurité d’un site web est essentielle pour protéger les données sensibles et limiter l’accès à des zones critiques. L’authentification basique (Basic Authentication) est une solution simple et rapide à mettre en place pour contrôler l’accès. Dans cet article, nous allons voir comment configurer cette fonctionnalité sur un serveur NginX installé sur une machine Debian 12.

1. Installer les outils Apache

Avant de commencer, assurez-vous d’avoir les outils nécessaires pour gérer les fichiers de mot de passe. Apache fournit un utilitaire appelé htpasswd qui permet de créer et de gérer ces fichiers. Pour l’installer, exécutez la commande suivante :

sudo apt install apache2-utils

2. Créer le fichier de mot de passe

Pour stocker les informations d’authentification, nous allons créer un fichier .htpasswd dans le répertoire de configuration de NginX, par exemple dans /etc/nginx/.

  1. Accédez au répertoire : cd /etc/nginx/
  2. Créez le fichier et ajoutez un utilisateur.
sudo htpasswd -c .htpasswd utilisateur

L’option -c permet de créer un nouveau fichier. Si vous souhaitez ajouter d’autres utilisateurs à un fichier existant, omettez simplement cette option

sudo htpasswd .htpasswd nouvel_utilisateur

3. Configurer NginX

Une fois le fichier .htpasswd créé, configurez NginX pour activer l’authentification sur une route précise, comme /api. Voici un exemple de configuration à insérer dans votre fichier de configuration NginX (souvent situé dans /etc/nginx/sites-available/ ou /etc/nginx/nginx.conf) :

location /api {
    include proxy_params;
    proxy_pass http://127.0.0.1:8080;
    auth_basic "Administrator’s Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
  • auth_basic : Définit le message affiché lors de la demande d’authentification.
  • auth_basic_user_file : Spécifie le chemin vers le fichier .htpasswd contenant les informations d’authentification.

4. Tester et appliquer les changements

Avant de redémarrer NginX, il est important de tester la validité de votre configuration pour éviter toute erreur :

sudo nginx -t

Si aucune erreur n’est signalée, redémarrez NginX pour appliquer les modifications :

sudo service nginx restart

Conclusion

En suivant ces étapes, vous avez mis en place une authentification basique pour protéger une partie de votre site ou application web sur NginX. Bien que cette solution soit simple à implémenter, elle ne remplace pas des méthodes plus robustes comme l’authentification OAuth ou JWT pour des applications critiques. Pour une sécurité accrue, pensez à utiliser HTTPS pour chiffrer les échanges entre le client et le serveur.

By menkaix

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA ImageChange Image