Ich versuche, Basic Auth auf Nginx zu tun. Ich habe Version 1.9.3 und läuft auf Ubuntu 14.04 und es funktioniert gut mit einer einfachen HTML-Datei.
Hier ist die HTML-Datei:
%Vor%Und hier ist meine nginx.conf-Datei:
%Vor%Ich habe htpasswd verwendet, um zwei Benutzer in der Datei "users" unter / etc (Benutzername "calvin" Passwort "Calvin" und Benutzername "Hobbes" Passwort "Hobbes") zu erstellen. Es sieht folgendermaßen aus:
%Vor%Alle Dateien gehören zu root: root. Die Server-IP-Adresse ist 192.168.1.30 und ich referenziere das direkt in der Conf-Datei.
Alles funktioniert gut, wenn ich die zwei Auth-Zeilen auskommentiere und nginx neu starte, aber wenn ich sie auskommentiere, bekomme ich tatsächlich die Benutzernamen und Passwortaufforderungen, wenn ich versuche, die Seite zu laden, aber sofort danach einen Error 500 Interner Serverfehler, der scheinbar bestehen bleibt und ich muss nginx neu starten.
Jeder kann sehen, was ich hier falsch mache? Ich hatte das gleiche Verhalten auf der Standard Ubuntu 14.04 apt-get-Version von Nginx (1.4.etwas), also glaube ich nicht, dass es die Nginx-Version ist.
Nicht wirklich eine Antwort auf Ihre Frage, wie Sie MD5 verwenden. Da dieser Thread bei der Suche nach dem Fehler jedoch auftaucht, füge ich diesen hinzu.
Ähnliche Fehler treten auf, wenn bcrypt
verwendet wird, um Passwörter für auth_basic
zu generieren:
Da bcrypt
in auth_basic
ATM nicht unterstützt wird, finden sich mysteriöse 500 Fehler in nginx error.log, (normalerweise gefunden in /var/log/nginx/error.log
), sie sehen ungefähr so aus:
*1 crypt_r() failed (22: Invalid argument), ...
Gegenwärtig besteht die Lösung darin, ein neues Passwort unter Verwendung von md5 zu erzeugen, was ohnehin die Standardeinstellung ist.
md5 hat sicher seine Probleme, einige Kontexte können in den folgenden Threads gefunden werden
Von den beiden kann das Geschwindigkeitsproblem abgeschwächt werden, indem man fail2ban verwendet, indem man die fehlgeschlagene Basisauthentifizierung verbietet Sie werden Online-Brute-Forcing unpraktisch machen ( Leitfaden ). Sie können auch lange Passwörter verwenden, um ein bisschen zu versuchen und zu stärken, wie es vorgeschlagen wird. hier .
Abgesehen davon scheint es so gut wie es mit nginx ist ...
Ich hatte beim ersten Erstellen eines Benutzers einen Fehler gemacht. Als Ergebnis sah die Datei htpasswd wie folgt aus:
%Vor%Nach dem Löschen des leeren Benutzers hat alles funktioniert.
Ich werde einfach die Datei htpassword unter "/ etc / nginx" selbst speichern.
Angenommen, es heißt htcontrol
, dann ...
sudo htpasswd -c /etc/nginx/htcontrol calvin
Folgen Sie der Eingabeaufforderung für das Passwort und die Datei wird an der richtigen Stelle sein.
%Vor% oder auth_basic_user_file /etc/nginx/htcontrol;
aber die erste Variante funktioniert für mich
Ich hatte gerade das gleiche Problem - nachdem ich das Logbuch überprüft habe, wie von @Drazen Urch vorgeschlagen, habe ich entdeckt, dass die Datei root:root
Berechtigungen hatte - nachdem ich zu forge:forge
gewechselt habe (ich benutze Forge mit Digital Ocean) Problem ging weg.
Tags und Links nginx