NGINX – Basic Authentication

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.

Basic Auth mit NGINX
Basic Auth mit NGINX

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.