Mam serwer Nginx i wyłączyłem ukryte pliki w nginx_vhost.conf
## Disable .htaccess and other hidden files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
Ale LetsEncrypt potrzebuje dostępu do .well-known
katalogu.
Jak zezwolić na .well-known
katalog i odrzucić inne ukryte pliki?
nginx
virtualhost
lets-encrypt
Janghou
źródło
źródło
.htaccess
plików. Ma pliki konfiguracyjne, ale nie są wywoływane.htaccess
ani nie działają tak samo.Odpowiedzi:
Inne rozwiązania mi nie pomogły.
Moje rozwiązanie polega na uwzględnieniu negatywnego wyrażenia regularnego dla
.well-known
. Twój blok kodu powinien wyglądać następująco:Zablokuje każdy plik kropkowy oprócz tych zaczynających się od
.well-known
PS: Chciałbym również dodać
return 404;
do bloku.źródło
location ~* /\.(?!well-known\/) {
widziany na github.com/h5bp/server-configs-nginx/blob/master/h5bp/location/… jest identyczny z tymlocation ~ /\.(?!well-known).* {
?/\.(?!well-known\/)
nie jest tak wyrazisty jak moje wyrażenie regularne (ponieważ blokuję wszystkie pliki kropek oprócz dobrze znanych z definicji). Być może najlepsza byłaby kombinacja,location ~ /\.(?!well-known\/).*
która odblokowuje tylko dobrze znany katalog zamiast teoretycznej.well-known-blabla
. Ale myślę, że nie ma realnego niebezpieczeństwa, jeśli nie zablokujesz teoretycznego pliku .well-known-blabla.Nginx stosuje lokalizacje z wyrażeniami regularnymi w kolejności ich pojawienia się w pliku konfiguracyjnym.
Dlatego dodanie takiego wpisu tuż przed bieżącą lokalizacją pomoże.
źródło
location ~ /\.well-known {
. Tak czy inaczej, powinna to być zaakceptowana odpowiedź.Udostępniłem pełny samouczek krok po kroku na temat korzystania z Let's Encrypt with NGINX na mojej stronie internetowej.
Kluczowe części to:
W ogóle nie potrzebujesz słuchaczy w swoim bloku https, wszystko odbywa się na https. To tylko po to, aby udowodnić, że kontrolujesz domenę, nie służy ona żadnemu prywatnemu ani tajnemu.
Pełny przewodnik krok po kroku połączony powyżej.
źródło
Dodaj to (przed lub po):
Możesz to dodać również na dole, ponieważ
^~
modyfikator dopasowania ma pierwszeństwo przed wyrażeniami regularnymi. Zobacz dokumenty .źródło
Jeśli masz wiele plików konfiguracyjnych, które już zawierają odmowę w .htaccess jak
następnie zamiast ignorować wszystkie pliki kropek , możesz po prostu dodać drugie ignorowanie dla .git za pomocą
źródło