In diesem Artikel werden wir eine Benutzer-Passwort Authentikation mit NGINX realisieren. Das Absichern mit dieser Art der Authentikation funktioniert ähnlich wie die bei Apaches HTTPD. Vorraussetzung ist natürlich eine installierter lauffähiger vorkonfigurierter NGINX Webserver. Dazu gibt es bei Bedarf auch ein extra Tutorial NGINX aus dem NGINX-Repository installieren von mir.
Passwort-Datei für NGINX erstellen
Zuerst installieren wir uns ein paar Tools die uns das erstellen der Passwortdatei erleichtern. Unter CentOS ist dies das Paket httpd-tools und der Debian/Ubuntu heist das Paket apache2-utils.
#CentOS yum install httpd-tools
#Debian/Ubuntu apt-get install apache2-utils
Nachdem die Installation abgeschlossen wurde, steht uns nun das Tool htpasswd zur Verfügung. Jetzt können wir ohne viel Aufwand mit den Befehl htpasswd Passwörter für NGINX erstellen.
Wir erstellen nun unser Passwortdatei nginxpw unterhalb von /etc/nginx/ in dieser werden die User und Passwörter für die NGINX Basic Authentication gespeichert.
htpasswd -c /etc/nginx/nginxpw linuxadmin New password: Re-type new password: Adding password for user linuxadmin
NGINX Basic Auth einrichten
Anschliessend erweitern wir unseren Konfigurationsfile für den vhost um die relevanten Parameter auth_basic und auth_basic_user_file:
server { listen 80; server_name tutorial.der-linux-admin.de; root /var/www/tutorial.der-linux-admin.de; index index.html; location / { auth_basic "Authentication"; auth_basic_user_file /etc/nginx/nginxpw; } }
Nach der Anpassung der Konfiguration starten wir NGINX neu und testen ob unsere URL nun ein Login erfordert.
Wenn alles richtig konfiguriert wurde sollte eine Dialog zur Authentikation erscheinen.
Wie immer lohnt ein Blick in die Dokumentation von NGINX dort speziell unter dem Punkt ngx_http_auth_basic_module.