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/
.
- Accédez au répertoire :
cd /etc/nginx/
- 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.