Ich habe vor einer Weile mal einen alten Webserver von apache2 nach nginx migriert, welcher eine Unterseite hatte, die mit .htaccess gesperrt war. Mir ist bekannt das nginx aus Performancegründen keine .htaccess-Dateien unterstützt, dennoch muss es ja möglich sein den Zugriff auf eine Unterseite zu limitieren. Nach ein paar Minuten suchen in der nginx Dokumentation, findet man das ngx_http_auth_basic_module, welches genau das kann. Der location-Block für die Unterseite foobar würde dann wie folgt aussehen:
location /foobar/ {
auth_basic "Closed Access";
auth_basic_user_file /etc/nginx/.htpasswd;
}
In der angegebenen .htpasswd steht der Username und das zugehörige Passwort (oder mehrere).
#EDIT
Hinweise von Arne, etwas von mir gekürzt: Den Usernamen und Passwort eintragen:
echo "USER:$(openssl passwd -apr1)" >> /etc/nginx/.htpasswd
Es wird zweimal nach dem Passwort gefragt.
Hinweise von Anonymous:
Von den Online-Generatoren sollte man tunlichst die Finger lassen!
Zumindest in der Vergangenheit gab es einige dieser Generatoren, die nicht nur dem Benutzer ihre Passwörter verschlüsselt haben, sondern auch zeitgleich damit diverse Rainbow-Tables befüllt haben.
Vielen Dank für den Hinweis an euch beide!
Arne
Die Passwortdatei kann auch mit Bordmitteln erstellt werden, extra die apache2-utils zu installieren ist nicht nötig:
Falls die Datei noch nicht existiert, als leere Datei erstellen, ansonsten den ersten Schritt überspringen:
touch /etc/nginx/.htpasswd
Dann den Usernamen eintragen:
echo -n ‚USER:‘ >> /etc/nginx/.htpasswd
Danach noch das verschlüsselte Passwort dazu:
openssl passwd -apr1 >> /etc/nginx/.htpasswd
Openssl fragt zweimal nach dem neuen Passwort und das wird dann verschlüsselt eingetragen.
Und natürlich immer auf die Zugriffsrechte achten. ;-)
Sebastian
Danke dir. Wurde in etwas modifizierter Art aufgenommen :)
Anonymous
Von den Online-Generatoren sollte man tunlichst die Finger lassen!
Zumindest in der Vergangenheit gab es einige dieser Generatoren, die nicht nur dem Benutzer ihre Passwörter verschlüsselt haben, sondern auch zeitgleich damit diverse Rainbow-Tables befüllt haben.
Sebastian
Ich danke, hätte ich mal mit etwas nachdenken selbst drauf kommen können…