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:
-
Un CentOS 7 Droplet avec un utilisateur sudo non root, que vous pouvez configurer en suivant le tutoriel suivant sur la configuration initiale du serveur: https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7 ].
-
Nginx installé et configuré sur votre serveur, ce que vous pouvez faire en suivant this tutorial sur l’installation de Nginx.
É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.