Nginx is een gratis, open-source webserver die wordt gebruikt voor load balancing, buffering en caching. Sinds de oprichting in 2004 is Nginx populair geworden voor het schalen van webservers en reverse proxying. Vanwege de hoge prestaties en uitstekende mogelijkheden om een groot aantal verbindingen te verwerken, wordt het gebruikt om inkomend verkeer te beheren en te controleren.
Hoe werkt HTTP-authenticatie?
In basis-HTTP-authenticatie, zijn alle routes op de server geblokkeerd en zijn de juiste inloggegevens vereist om te authenticeren. Telkens wanneer een gebruiker toegang probeert te krijgen tot een beveiligde bron, stuurt de server de gebruiker een WWW-Authenticate-header en een 401 Unauthorized respons. Als de gebruikersnaam en het wachtwoord die door de gebruiker worden gebruikt correct zijn en overeenkomen met het sleutelbestand, wordt de verbinding tot stand gebracht, anders wordt deze geweigerd.
In deze handleiding leiden we je door de stappen voor het instellen van basis-HTTP-authenticatie met Nginx op Ubuntu 20.04.
Vereisten
Om deze handleiding te volgen, heb je het volgende nodig:
- De nieuwste versie van Ubuntu geïnstalleerd op je systeem.
- Systeemgebruikers moeten beschikken over sudo-rechten.
- Nginx geïnstalleerd en geconfigureerd op je server.
Stap 1: Software-repositories bijwerken
Voordat je nieuwe software of een API-pakket op je systeem installeert, moet je de repositories vernieuwen om fouten of pakketconflicten te voorkomen. Eerst zullen we de software bijwerken met het sudo-commando:
|
1 |
sudo apt-get update |
Nu we de software-repositories hebben bijgewerkt, gaan we de benodigde apache2-pakketten installeren.
Stap 2: Benodigde pakketten installeren
Omdat we HTTP-authenticatie instellen voor een map, gebruiken we het htpasswd-commando om een versleuteld wachtwoord aan te maken. Installeer het apache2-utils-pakket met het volgende commando:
|
1 |
sudo apt-get install apache2-utils |
Stap 3: Gebruiker en wachtwoord aanmaken
In deze stap stellen we de inloggegevens voor de basis-HTTP-authenticatie in. Maak onder de hoofdmap een .htpasswd-bestand aan dat gekoppeld is aan de gebruiker. Het wachtwoord wordt versleuteld en de bestandsnaam mag je zelf kiezen. Gebruik het volgende commando om het bestand aan te maken en de gebruiker toe te voegen met een versleuteld wachtwoord:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

Controleer vervolgens het nieuw aangemaakte bestand met het volgende commando:
|
1 |
cat /etc/nginx/.htpasswd |
Step 4: De Nginx-configuratie bijwerken
Zondra we onze inloggegevens voor HTTP-basisauthenticatie hebben, gaan we Nginx instellen en gebruiken op onze doelwebsite. We hebben de auth_basic en auth_basic_user_file-richtlijnen nodig om de HTTP-basisauthenticatie tot stand te brengen. De waarde van de auth_basic-richtlijn is een string-indeling, terwijl de waarde van auth_basic_user_file het pad is naar het wachtwoordbestand dat is aangemaakt in Stap 3.
Het is belangrijk om de twee richtlijnen op te nemen in het configuratiebestand van de doelwebsite. Je vindt de locatie van de doelwebsite in de map /etc/nginx/sites-available directory. Open het configuratiebestand met de nano-editor:
|
1 |
sudo nano /etc/nginx/sites-available/default |
Voeg vervolgens beide richtlijnen toe onder de sectie location:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # Eerste poging om verzoek als bestand te serveren, daarna # als map, en val dan terug op het weergeven van een 404. try_files $uri $uri/ =404; # Verwijder commentaarteken om naxsi in te schakelen op deze locatie # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
Sla na het toevoegen van de richtlijn het configuratiebestand op en sluit het.
Stap 5: Nginx opnieuw opstarten
Laad of herstart vervolgens de Nginx-services om de wijzigingen op onze virtuele host toe te passen. Daarna proberen we toegang te krijgen tot het beveiligde domein met behulp van onze basis HTTP-authenticatie. Gebruik de volgende opdracht om de Nginx-services te activeren:
|
1 |
sudo service nginx reload |
Stap 6: Beveiligde webtoegang
Zodra u Nginx hebt herstart, is de volgende stap om te proberen toegang te krijgen tot het IP-adres of de domeinnaam in uw favoriete browser. Bij het klikken op het IP-adres http://your_domain_name/ in uw browser, wordt er een prompt geopend waarin u wordt gevraagd de inloggegevens in te voeren om te authenticeren. Zodra u de juiste gebruikersnaam en het juiste wachtwoord invoert, ziet u een standaard Nginx-startpagina.
Conclusie
In deze handleiding hebben we geleerd hoe we basis HTTP-authenticatie met Nginx kunnen configureren. De basis gebruikersnaam/wachtwoord-authenticatie is slechts een van de vele authenticatie-opties om een veilige verbinding tot stand te brengen in Nginx.
Er zijn andere krachtige opties die worden gebruikt voor serverauthenticatie. Enkele populaire methoden die u kunt gebruiken zijn bijvoorbeeld API-integraties, JSON Web Tokens, op SSH-sleutels gebaseerde authenticaties. Hoewel het verkrijgen van robuuste beveiligingsmechanismen in eerste instantie misschien lastig lijkt, zijn ze zeer effectief om uw privacy te beschermen.
Daarnaast zijn er nog veel andere leermaterialen en handleidingen over Nginx die u kunt openen via onze blogs:
- Overzicht van Nginx Server- en Location Block-selectiealgoritmen
- Laravel installeren en configureren met Nginx op Ubuntu 20.04
- Django instellen met PostgreSQL, Nginx en Gunicorn op Ubuntu 20.04
Veel computerplezier!

Reacties
Nog geen reacties. Wees de eerste.