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:
- 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