Ich habe einen Nginx-Server und deaktiviere versteckte Dateien in der nginx_vhost.conf
## Disable .htaccess and other hidden files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
LetsEncrypt benötigt jedoch Zugriff auf das .well-known
Verzeichnis.
Wie kann ich das .well-known
Verzeichnis zulassen und die anderen versteckten Dateien verweigern?
nginx
virtualhost
lets-encrypt
Janghou
quelle
quelle
.htaccess
Dateien. Es hat Konfigurationsdateien, die aber nicht aufgerufen werden.htaccess
und auch nicht gleich funktionieren.Antworten:
Die anderen Lösungen haben mir nicht geholfen.
Meine Lösung besteht darin, einen negativen regulären Ausdruck für aufzunehmen
.well-known
. Ihr Codeblock sollte dann so aussehen:Es wird jede Punktedatei mit Ausnahme derjenigen blockiert, die mit beginnen
.well-known
PS: Ich würde
return 404;
den Block auch ergänzen .quelle
location ~* /\.(?!well-known\/) {
wie unter github.com/h5bp/server-configs-nginx/blob/master/h5bp/location/… zu sehen identischlocation ~ /\.(?!well-known).* {
?/\.(?!well-known\/)
ist nicht so aussagekräftig wie mein regulärer Ausdruck (weil ich alle Punktedateien außer den per Definition bekannten blockiere). Vielleicht wäre das Beste eine Kombination wielocation ~ /\.(?!well-known\/).*
die, die nur das bekannte Verzeichnis freischaltet, stattdessen auch ein theoretisches.well-known-blabla
. Aber ich denke, es besteht keine wirkliche Gefahr, eine theoretische .well-known-blabla-Datei nicht zu blockieren.Nginx wendet Speicherorte mit regulären Ausdrücken in der Reihenfolge ihres Auftretens in der Konfigurationsdatei an.
Daher hilft es Ihnen , einen Eintrag wie diesen direkt vor Ihrem aktuellen Standort hinzuzufügen .
quelle
location ~ /\.well-known {
. In jedem Fall sollte dies die akzeptierte Antwort sein.Ich habe eine vollständige schrittweise Anleitung zur Verwendung von Let's Encrypt mit NGINX auf meiner Website bereitgestellt .
Die Schlüsselteile sind:
Sie brauchen überhaupt keine Listener in Ihrem https-Block, es wird alles über https erledigt. Dies soll nur beweisen, dass Sie die Domain kontrollieren. Es wird nichts Privates oder Geheimes bereitgestellt.
Vollständige Schritt-für-Schritt-Anleitung, die oben verlinkt ist.
quelle
Füge dies hinzu (vorher oder nachher):
Sie können dies auch unten hinzufügen, da der entsprechende
^~
Modifikator Vorrang vor regulären Ausdrücken hat. Siehe die Dokumentation .quelle
Wenn Sie viele Konfigurationsdateien haben und diese bereits einen Verweigerungscode für .htaccess wie enthalten
dann stattdessen alle Punkt - Dateien zu ignorieren , können Sie einfach hinzufügen , eine zweite für .git ignorieren mit
quelle