Hvordan passordbeskytte nettkataloger i Nginx


Ledere av nettprosjekter trenger ofte å beskytte arbeidet sitt på en eller annen måte. Ofte spør folk hvordan de kan passordbeskytte nettstedet sitt mens det fortsatt er under utvikling.

I denne opplæringen skal vi vise deg en enkel, men effektiv teknikk for hvordan du passordbeskyttet nettkatalog når du kjører Nginx som nettserver.

I tilfelle du bruker Apache-nettserver, kan du sjekke guiden vår for passordbeskyttelse av en nettkatalog:

  1. Passordbeskytt nettkataloger i Apache

For å fullføre trinnene i denne opplæringen, må du ha:

  • Nginx-nettserver installert
  • Roottilgang til serveren

Trinn 1: Opprett bruker og passord

1. For å passordbeskytte nettkatalogen vår, må vi opprette filen som inneholder vårt krypterte brukernavn og passord.

Når du bruker Apache, kan du bruke htpasswd-verktøyet. Hvis du har dette verktøyet installert på systemet ditt, kan du bruke denne kommandoen til å generere passordfilen:

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

Når du kjører denne kommandoen, vil du bli bedt om å angi et passord for brukeren ovenfor, og deretter opprettes .htpasswd-filen i den angitte katalogen.

2. Hvis du ikke har det verktøyet installert, kan du opprette .htpasswd-filen manuelt. Filen skal ha følgende syntaks:

username:encrypted-password:comment

Brukernavnet du vil bruke avhenger av deg, velg hva du vil.

Den viktigste delen er måten du genererer passordet for den brukeren på.

Trinn 2: Generer kryptert passord

3. For å generere passordet, bruk Perls integrerte krypt-funksjon.

Her er et eksempel på den kommandoen:

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

Et eksempel fra det virkelige liv:

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

Åpne nå en fil og legg inn brukernavnet ditt og den genererte i strengen, atskilt med semikolon.

Slik gjør du det:

# vi /home/tecmint/.htpasswd

Legg inn brukernavn og passord. I mitt tilfelle ser det slik ut:

tecmint:1xV2Rdw7Q6MK.

Lagre filen ved å trykke Esc etterfulgt av :wq.

Trinn 3: Oppdater Nginx-konfigurasjon

4. Åpne og rediger nå Nginx-konfigurasjonsfilen knyttet til nettstedet du jobber med. I vårt tilfelle vil vi bruke 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 vårt eksempel vil vi passordbeskytte katalogroten for nginx, som er: /usr/share/nginx/html.

5. Legg nå til følgende to linjers seksjon under banen du ønsker å beskytte.

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

Lagre nå filen og start Nginx på nytt med:

# systemctl restart nginx
OR
# service nginx restart

6. Kopier/lim inn denne IP-adressen i nettleseren din, og du bør bli bedt om passord:

Det er det! Hovednettkatalogen din er nå beskyttet. Når du vil fjerne passordbeskyttelsen på nettstedet, fjerner du ganske enkelt de to linjene du nettopp har lagt til i .htpasswd-filen, eller bruker følgende kommando for å fjerne den tilføyde brukeren fra en passordfil.

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