IhavetheKnowledge.nl / How-To / Gebruik htpasswd met Nginx om een website of map te beveiligen

Gebruik htpasswd met Nginx om een website of map te beveiligen

Nginx

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.