Comment configurer l’authentification HTTP de base sur NGINX

configuration de l'authentification HTTP basique sur NGINX ubuntu et centos

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.

authentification par mot de passe avec nginx auth

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.

Laisser un commentaire