Kako z geslom zaščititi spletne imenike v Nginxu
Upravitelji spletnih projektov morajo pogosto tako ali drugače zaščititi svoje delo. Ljudje se pogosto sprašujejo, kako zaščititi svoje spletno mesto z geslom, ko je še v razvoju.
V tej vadnici vam bomo pokazali preprosto, a učinkovito tehniko, kako zaščititi z geslom spletni imenik pri zagonu Nginxa kot spletnega strežnika.
Če uporabljate spletni strežnik Apache, lahko v našem priročniku preverite geslo za zaščito spletnega imenika:
- Zaščitite spletne imenike z geslom v Apacheju
Za dokončanje korakov v tej vadnici boste morali imeti:
- Nameščen spletni strežnik Nginx
- Root dostop do strežnika
1. korak: Ustvarite uporabnika in geslo
1. Za zaščito našega spletnega imenika z geslom bomo morali ustvariti datoteko, ki bo vsebovala naše šifrirano uporabniško ime in geslo.
Ko uporabljate Apache, lahko uporabite pripomoček “htpasswd”. Če je ta pripomoček nameščen v vašem sistemu, lahko s tem ukazom ustvarite datoteko z geslom:
# htpasswd -c /path/to/file/.htpasswd username
Med izvajanjem tega ukaza boste pozvani, da nastavite geslo za zgornjega uporabnika, nato pa bo datoteka .htpasswd ustvarjena v določenem imeniku.
2. Če tega orodja niste namestili, lahko datoteko .htpasswd ustvarite ročno. Datoteka mora imeti naslednjo skladnjo:
username:encrypted-password:comment
Uporabniško ime, ki ga boste uporabili, je odvisno od vas, izberite vse, kar želite.
Pomembnejši del je način, kako boste ustvarili geslo za tega uporabnika.
2. korak: Ustvari šifrirano geslo
3. Če želite ustvariti geslo, uporabite Perlovo integrirano funkcijo "kripta".
Tu je primer tega ukaza:
# perl -le 'print crypt("your-password", "salt-hash")'
Primer iz resničnega življenja:
# perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'
Zdaj odprite datoteko in vstavite svoje uporabniško ime in ustvarjeno v niz, ločeno s podpičjem.
Takole:
# vi /home/tecmint/.htpasswd
Vnesite svoje uporabniško ime in geslo. V mojem primeru je videti tako:
tecmint:1xV2Rdw7Q6MK.
Datoteko shranite tako, da pritisnete »Esc« in nato »: wq«.
3. korak: Posodobite konfiguracijo Nginx
4. Zdaj odprite in uredite konfiguracijsko datoteko Nginx, povezano s spletnim mestom, na katerem delate. V našem primeru bomo uporabili privzeto datoteko na:
# 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]
V našem primeru bomo z geslom zaščitili koren imenika za nginx, in sicer: /usr/share/nginx/html
.
5. Zdaj dodajte naslednji odsek v dve vrstici pod pot, ki jo želite zaščititi.
auth_basic "Administrator Login"; auth_basic_user_file /home/tecmint/.htpasswd;
Zdaj shranite datoteko in znova zaženite Nginx z:
# systemctl restart nginx OR # service nginx restart
6. Zdaj kopirajte/prilepite ta naslov IP v brskalnik in morali bi vas vprašati za geslo:
To je to! Vaš glavni spletni imenik je zdaj zaščiten. Ko želite na spletnem mestu odstraniti zaščito z geslom, preprosto odstranite dve vrstici, ki ste ju pravkar dodali v datoteko .htpasswd, ali z naslednjim ukazom odstranite dodanega uporabnika iz datoteke z geslom.
# htpasswd -D /path/to/file/.htpasswd username