L’authentification HTTP est un moyen simple et sûr de protéger le contenu sensible contre les utilisateurs non autorisés. Cet article vous montrera comment configurer l’authentification HTTP de base sur un serveur NGINX fonctionnant sous Ubuntu 16.04, 18.04, 20.04 ou 22.04 / CentOS 6, 7 ou 8.
Prérequis
- Un serveur Ubuntu / CentOS avec un utilisateur non-root avec des privilèges sudo.
- NGINX installé sur le serveur. Si vous avez besoin d’aide pour installer NGINX, vous pouvez suivre ce guide d’installation.
Étape 1 : Créer un fichier d’authentification
Nous allons commencer par créer un fichier d’authentification. Ce fichier contiendra les combinaisons de nom d’utilisateur et de mot de passe qui seront utilisées pour l’authentification.
Tout d’abord, créez un fichier d’authentification avec les combinaisons de nom d’utilisateur et de mot de passe. Remplacez username
par le nom d’utilisateur que vous voulez utiliser et password
par le mot de passe correspondant :
sudo htpasswd -c /etc/nginx/.htpasswd username
Lorsque vous y êtes invité, saisissez le mot de passe souhaité pour le nom d’utilisateur :
Password: password
Verifying - Password: password
Répétez les étapes ci-dessus pour chaque combinaison de nom d’utilisateur et de mot de passe que vous souhaitez ajouter.
Étape 2 : Configurer NGINX
Nous pouvons maintenant configurer NGINX pour utiliser le fichier d’authentification que nous avons créé.
Tout d’abord, ouvrez le fichier de configuration NGINX dans un éditeur de texte :
sudo nano /etc/nginx/sites-available/default
Le fichier de configuration par défaut contient un bloc serveur qui ressemble à ceci :
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}
Nous allons ajouter une directive auth_basic
au bloc d’emplacement. Cette directive indiquera à NGINX d’utiliser notre fichier d’authentification pour l’authentification. Le bloc d’emplacement devrait maintenant ressembler à ceci :
location / {
try_files $uri $uri/ =404;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Lorsque vous avez terminé, enregistrez et fermez le fichier.
Étape 3 : Tester la configuration
Maintenant que nous avons configuré NGINX pour utiliser l’authentification HTTP de base, nous pouvons tester la configuration.
Tout d’abord, vérifiez qu’il n’y a pas d’erreurs de syntaxe dans le fichier de configuration :
sudo nginx -t
S’il n’y a pas d’erreurs de syntaxe, redémarrez NGINX pour appliquer les changements :
sudo systemctl restart nginx
En conclusion, lorsque vous accédez à des informations protégées par une authentification, un nom d’utilisateur et un mot de passe vous sont demandés.
Conclusion
Dans cet article, nous vous avons montré comment configurer l’authentification HTTP de base sur un serveur NGINX fonctionnant sous Ubuntu ou CentOS. Il s’agit d’un moyen simple et sûr de protéger le contenu sensible contre les utilisateurs non autorisés.