Sådan beskyttes webkataloger med adgangskode i Nginx


Ledere af webprojekter har ofte brug for at beskytte deres arbejde på en eller anden måde. Ofte spørger folk, hvordan de skal beskytte deres websted med adgangskode, mens det stadig er under udvikling.

I denne vejledning vil vi vise dig en enkel, men effektiv teknik, hvordan du adgangskodebeskyttet webkatalog, når du kører Nginx som webserver.

Hvis du bruger Apache-webserver, kan du tjekke vores guide for adgangskodebeskyttelse af et webkatalog:

  1. Adgangskodebeskyttende webmapper i Apache

For at gennemføre trinene i denne vejledning skal du have:

  • Nginx-webserver installeret
  • Rødadgang til serveren

Trin 1: Opret bruger og adgangskode

1. For at beskytte vores webkatalog med adgangskode skal vi oprette den fil, der indeholder vores krypterede brugernavn og adgangskode.

Når du bruger Apache, kan du bruge hjælpeprogrammet “htpasswd”. Hvis du har installeret det hjælpeprogram på dit system, kan du bruge denne kommando til at generere adgangskodefilen:

# htpasswd -c /path/to/file/.htpasswd username

Når du kører denne kommando, bliver du bedt om at indstille en adgangskode til ovenstående bruger, og derefter oprettes .htpasswd-filen i det angivne bibliotek.

2. Hvis du ikke har dette værktøj installeret, kan du oprette .htpasswd-filen manuelt. Filen skal have følgende syntaks:

username:encrypted-password:comment

Det brugernavn, du vil bruge, afhænger af dig, vælg hvad du vil.

Den vigtigere del er den måde, du genererer adgangskoden til den bruger på.

Trin 2: Generer krypteret adgangskode

3. For at generere adgangskoden skal du bruge Perls integrerede “krypt” -funktion.

Her er et eksempel på denne kommando:

# perl -le 'print crypt("your-password", "salt-hash")'

Et rigtigt eksempel:

# perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'

Åbn nu en fil, og læg dit brugernavn og det genererede i en streng, adskilt med semikolon.

Sådan gør du:

# vi /home/tecmint/.htpasswd

Indsæt dit brugernavn og din adgangskode. I mit tilfælde ser det sådan ud:

tecmint:1xV2Rdw7Q6MK.

Gem filen ved at trykke på "Esc" efterfulgt af ": wq".

Trin 3: Opdater Nginx-konfiguration

4. Åbn og rediger nu Nginx-konfigurationsfilen, der er knyttet til det websted, du arbejder på. I vores tilfælde bruger vi standardfilen på:

# vi /etc/nginx/conf.d/default.conf       [For CentOS based systems]
OR
# vi /etc/nginx/nginx.conf                [For CentOS based systems]


# vi /etc/nginx/sites-enabled/default     [For Debian based systems]

I vores eksempel beskytter vi adgangskoden til nginx med adgangskode, som er: /usr/share/nginx/html .

5. Tilføj nu de følgende to liniesektioner under den sti, du vil beskytte.

auth_basic "Administrator Login";
auth_basic_user_file /home/tecmint/.htpasswd;

Gem nu filen, og genstart Nginx med:

# systemctl restart nginx
OR
# service nginx restart

6. Kopier/indsæt nu den IP-adresse i din browser, og du skal blive bedt om adgangskode:

Det er det! Din vigtigste webkatalog er nu beskyttet. Når du vil fjerne adgangskodebeskyttelsen på webstedet, skal du blot fjerne de to linjer, du lige har føjet til .htpasswd-filen eller bruge følgende kommando til at fjerne den tilføjede bruger fra en adgangskodefil.

# htpasswd -D /path/to/file/.htpasswd username