Nginx auth_basic funktioniert einfach nicht

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
superhero

Nginx auth_basic funktioniert einfach nicht

Beitrag von superhero » 05.08.2017 07:41:29

Ich habe folgendes Problem:

Ich habe mich für Nginx als Server entschieden und möchte ein Unterverzeichnis (z.B. für PhpMyAdmin) mit Passwort schützen. Dazu habe ich die apache2-utils installiert und eine .htpasswd nach /etc/nginx getan. Im Server-Script steht folgendes:

Code: Alles auswählen

server {
	listen 80;
	listen [::]:80;
	listen 443 ssl http2;
	listen [::]:443 ssl http2;

	ssl on;
	ssl_certificate /etc/letsencrypt/live/dom.tlv/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/dom.tlv/privkey.pem;
	ssl_session_cache builtin:1000 shared:SSL:10m;
	ssl_ciphers  HIGH:!aNULL:!MD5:!RC4;
	
	server_name dom.tlv www.dom.tlv;
	
	root /var/www/dom.tlv;
			
	index index.php index.html;

	if ( $scheme = http ){
		return 301 https://$server_name$request_uri;
	}

	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
	}

	location /sub {
		auth_basic "ADMIN";
		auth_basic_user_file /etc/nginx/.htpasswd;
	}
}
Bei Aufruf von https://dom.tlv/sub ist alles gut. Der Benutzer wird bei falschen Angaben abgewiesen. DOCH: Bei https://dom.tlv/sub/index.php brauche ich nur ein paarmal auf 'abbrechen' klicken, schon bin ich im Login von PhpMyAdmin. Und genau das will ich vermeiden. Wer weiß da Rat und kann helfen? Die /etc/nginx/.htpasswd habe ich mit mehreren chmod versucht und sogar mal Gruppe und Benutzer auf www-data geändert. Ändert gar nichts. Auch das teilweise auskommentieren in der snippets/fastcgi-php.conf hat nichts gebracht. Natürlich habe ich jedesmal den Service Nginx und php7.0-fpm reloaded.

Nun weiß ich nicht weiter und brauhe Hilfe.

superhero

Re: Nginx auth_basic funktioniert einfach nicht

Beitrag von superhero » 05.08.2017 09:25:11

Ich habe das Verzeichnis jetzt so 'dicht' bekommen:

Code: Alles auswählen

 location /sub {
                auth_basic "ADMINISTRATION";
                auth_basic_user_file /etc/nginx/.htpasswd;
                location ~ \.php$ {
                        include snippets/fastcgi-php.conf;
                        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        include fastcgi_params;
                        auth_basic "ADMINISTRATION";
                        auth_basic_user_file  /etc/nginx/.htpasswd;
                }
        }
Ist nicht schön und erweckt auch nicht wirklich Vertrauen zu nginx. Da muss ich wohl erstmal mit leben.

Antworten