Gelegentlich muss ich in Nginx den passwortschutz für eine Seite konfigurieren. Jedes Mal suche ich wieder, wie ich das am einfachsten auf der Kommandozeile durchführe, da htpasswd eigentlich eine Apache-Tool ist.

Ich habe bei mir immer PHP installiert, daher werde ich das nutzen. Um das Passwort “fooB4rB4z” in einer htpassed-Datei zu generieren, muss der Befehl dazu wie folgt aussehen:

1
php -r "echo crypt('fooB4rB4z', base64_encode('fooB4rB4z'));"

Das sieht dann so aus: [ htpasswd für PHP

Dann fügt man diesen String wie folgt in die htpasswd ein:

1
echo 'MyCoolUsername:Zmi.VLGYm/RZM' >> /etc/nginx/htpasswd

Dann muss man noch den VHost konfigurieren:

1
2
3
4
location / {
  auth_basic  "Restricted Area - Please enter Username & Password";
  auth_basic_user_file  /etc/nginx/htpasswd;
}

Einmal die Konfiguration von Nginx neu einlesen lassen und schon kann man sich per “MyCoolUsername” mit dem passwort “fooB4rB4z” einloggen.