Gebruik htpasswd met Nginx om een website of map te beveiligen
Nginx kan, net als Apache, mappen en bestanden beveiligen met htpasswd. Bezoekers moeten dan een gebruikersnaam en wachtwoord opgeven om toegang tot een map of bestand te krijgen.
In deze handleiding wordt de website www.website.nl beveiligd met een htpasswd bestand, zodat alleen geautoriseerde gebruikers toegang hebben tot deze website.
Let op: Voor het gebruik van htpasswd bestanden moet de module HttpAuthBasicModule in Nginx gecompileerd zijn, anders werkt het niet.
Om htpasswd te gebruiken moet apache-tools geïnstalleerd zijn, anders is het commando htpasswd niet beschikbaar.
htpasswd
Maak een nieuwe map aan om de htpasswd bestanden in op te slaan:
mkdir /etc/nginx/htpasswd chown www-data:www-data /etc/nginx/htpasswd/ cd /etc/nginx/htpasswd/
Maak een nieuw htpasswd bestand aan:
htpasswd -c /etc/nginx/htpasswd/www.website.nl.htpasswd gebruiker New password: Re-enter password: Password created for gebruiker
Vervang gebruiker met een zelf gekozen gebruikersnaam.
Nginx aanpassen
Nu moet Nginx nog aangepast worden zodat het de htpasswd bestanden gaat gebruiken voor verificatie:
Open het configuratie-bestand www.website.nl uit de map /etc/nginx/sites-enabled/
nano /etc/nginx/sites-enabled/www.website.nl
Verander de configuratie naar het onderstaande voorbeeld:
location / {
index index.html;
auth_basic "Toegang tot beveiligde map/directory/website";
auth_basic_user_file /etc/nginx/htpasswd/www.website.nl.passwd;
}Sla de configuratie op en herlaad de Nginx configuratie:
service nginx reload
Bezoek nu http://www.website.nl en als alles goed gegaan is, wordt er nu om een gebruikersnaam en wachtwoord gevraagd. Na deze ingevuld te hebben is toegang tot de website mogelijk.