Comment protéger les répertoires Web dans Nginx

Comment protéger les répertoires Web dans Nginx

Les gestionnaires de projets Web doivent souvent protéger leur travail d'une manière ou d'une autre. Souvent, les gens demandent comment le mot de passe protéger leur site Web alors qu'il est encore en développement.

Ninx Mot de passe Protecter le répertoire Web

Dans ce didacticiel, nous allons vous montrer une technique simple mais efficace sur le répertoire Web protégé par mot de passe lors de l'exécution de Nginx en tant que serveur Web.

Dans le cas où vous utilisez Apache Web Server, vous pouvez consulter notre guide pour la protection du mot de passe d'un répertoire Web:

  1. Mot de passe protéger les répertoires Web à Apache

Exigences

Pour terminer les étapes de ce tutoriel, vous devrez avoir:

  • Serveur Web Nginx installé
  • Accès root au serveur

Étape 1: Créez l'utilisateur et le mot de passe

1. Pour protéger notre répertoire Web, nous devrons créer le fichier qui contiendra notre crypte nom d'utilisateur et mot de passe.

Lors de l'utilisation Apache, Vous pouvez utiliser le "htpasswd" utilitaire. Si cet utilitaire est installé sur votre système, vous pouvez utiliser cette commande pour générer le fichier de mot de passe:

# htpasswd -c / path / to / file /.nom d'utilisateur htpasswd 

Lors de l'exécution de cette commande, il vous sera demandé de définir un mot de passe pour l'utilisateur ci-dessus et après cela .htpasswd Le fichier sera créé dans le répertoire spécifié.

HTPASSWD: Créer un fichier de mot de passe utilisateur Nginx

2. Si vous n'avez pas installé cet outil, vous pouvez créer le .htpasswd fichier manuellement. Le fichier doit avoir la syntaxe suivante:

Nom d'utilisateur: mot de passe crypté: commentaire

Le nom d'utilisateur que vous utiliserez dépend de vous, choisissez ce que vous voulez.

La partie la plus importante est la façon dont vous générerez le mot de passe pour cet utilisateur.

Étape 2: générer un mot de passe crypté

3. Pour générer le mot de passe, utilisez Perl intégré "crypte" fonction.

Voici un exemple de cette commande:

# perl -le 'imprimer crypte ("Votre mot-passe", "Salt-Hash")' 

Un vrai exemple de vie:

# perl -le 'imprimer crypte ("# 12dfsaa $ fa", "1xzcq")' 
Générer un mot de passe crypté

Ouvrez maintenant un fichier et mettez votre nom d'utilisateur et le généré dans la chaîne IT, séparé avec un point-virgule.

Voici comment:

# vi / home / tecmint /.htpasswd 

Mettez votre nom d'utilisateur et votre mot de passe. Dans mon cas, cela ressemble à ceci:

Tecmint: 1xv2rdw7q6mk. 

Enregistrer le fichier en frappant "Esc" suivie par «: WQ».

Ajouter un mot de passe chiffré à HTPassWD

Étape 3: Mettre à jour la configuration de Nginx

4. Open et modifiez maintenant le fichier de configuration Nginx associé au site sur lequel vous travaillez. Dans notre cas, nous utiliserons le fichier par défaut à:

# vi / etc / nginx / confr.d / par défaut.confr [pour Centos systèmes basés] ou # vi / etc / nginx / nginx.confr [pour Centos systèmes basés sur] # vi / etc / nginx / sites compatible / par défaut [pour Debian Systèmes basés 

Dans notre exemple, nous protégerons le mot de passe de la racine du répertoire pour Nginx, qui est: / usr / share / nginx / html.

5. Ajoutez maintenant la section des deux lignes suivantes sous le chemin que vous souhaitez protéger.

AUTH_BASIC "Administrateur Login"; auth_basic_user_file / home / tecmint /.htpasswd; 
Mot de passe Protéger le répertoire Nginx

Enregistrez maintenant le fichier et redémarrez Nginx avec:

# SystemCTL Redémarrer Nginx ou # Service Nginx Redémarrer 

6. Copiez / collez maintenant cette adresse IP dans votre navigateur et vous devez vous demander le mot de passe:

Nginx Mot de passe Protéger la connexion

C'est ça! Votre répertoire Web principal est maintenant protégé. Lorsque vous souhaitez supprimer la protection du mot de passe sur le site, supprimez simplement les deux lignes auxquelles vous venez d'ajouter .htpasswd fichier ou utiliser la commande suivante pour supprimer l'utilisateur ajouté d'un fichier de mot de passe.

# htpasswd -d / path / to / file /.nom d'utilisateur htpasswd