Comment configurer l’authentification HTTP de base avec Nginx sur CentOS 7

introduction

Nginx est l’un des principaux serveurs Web en utilisation active. Il et son édition commerciale, Nginx Plus, sont développés par Nginx, Inc.

Dans ce didacticiel, vous apprendrez à restreindre l’accès à un site Web utilisant Nginx à l’aide de la méthode d’authentification HTTP de base sous Ubuntu 14.04. L’authentification HTTP de base est une méthode simple d’authentification par nom d’utilisateur et mot de passe (haché).

Conditions préalables

Pour compléter ce didacticiel, vous aurez besoin des éléments suivants:

Étape 1 - Installation des outils HTTPD

Vous aurez besoin de la commande + htpassword + pour configurer le mot de passe qui limitera l’accès au site Web cible. Cette commande fait partie du paquet + httpd-tools +, aussi la première étape consiste à installer ce paquet.

sudo yum install -y httpd-tools

Étape 2 - Configuration des informations d’authentification de base HTTP

Dans cette étape, vous allez créer un mot de passe pour l’utilisateur qui exécute le site Web.

Ce mot de passe et le nom d’utilisateur associé seront stockés dans un fichier que vous spécifiez. Le mot de passe sera crypté et le nom du fichier peut être ce que vous voulez. Ici, nous utilisons le fichier + / etc / nginx / .htpasswd + et le nom d’utilisateur * nginx *.

Pour créer le mot de passe, exécutez la commande suivante.

sudo htpasswd -c /etc/nginx/.htpasswd nginx

Vous pouvez vérifier le contenu du fichier nouvellement créé pour voir le nom d’utilisateur et le mot de passe haché.

cat /etc/nginx/.htpasswd

Exemple /etc/nginx/.htpasswd

nginx:$apr1$ilgq7ZEO$OarDX15gjKAxuxzv0JTrO/

Étape 3 - Mise à jour de la configuration de Nginx

Maintenant que vous avez créé les informations d’authentification de base HTTP, l’étape suivante consiste à mettre à jour la configuration de Nginx pour que le site Web cible puisse l’utiliser.

L’authentification de base HTTP est rendue possible par les directives + auth_basic + et + auth_basic_user_file +. La valeur de + auth_basic + est une chaîne quelconque et sera affichée à l’invite d’authentification; la valeur de + auth_basic_user_file + est le chemin du fichier de mots de passe créé à l’étape 2.

Les deux directives doivent figurer dans le fichier de configuration du site Web cible, qui se trouve normalement dans le répertoire + / etc / nginx / +. Ouvrez ce fichier en utilisant + nano + ou votre éditeur de texte préféré.

sudo nano /etc/nginx/nginx.conf

Sous la section * server *, ajoutez les deux directives:

/etc/nginx/nginx.conf

. . .
server {
   listen       80 default_server;
   listen       [::]:80 default_server;
   server_name  _;
   root         /usr/share/nginx/html;



. . .

Enregistrez et fermez le fichier.

Étape 4 - Test de la configuration

Pour appliquer les modifications, rechargez d’abord Nginx.

sudo systemctl reload nginx

Maintenant, essayez d’accéder au site Web que vous venez de sécuriser en allant sur + http: /// + dans votre navigateur préféré. Une fenêtre d’authentification («Propriété privée», la chaîne que nous avons définie pour + auth_basic +) devrait vous être présentée, et vous ne pourrez pas accéder au site Web tant que vous n’aurez pas saisi les informations d’identité correctes. Si vous entrez le nom d’utilisateur et le mot de passe que vous avez définis, la page d’accueil par défaut de Nginx s’affichera.

Conclusion

Vous venez de terminer la restriction d’accès de base pour un site Web Nginx. De plus amples informations sur cette technique et d’autres moyens de restriction d’accès sont disponibles à l’adresse in de la documentation de Nginx.