Próbuję przejść z certyfikatów z podpisem własnym do certyfikatów Let's Encrypt na moim serwerze internetowym Nginx.
Obecnie przekierować wszystkie żądania do http/80
celu https/443
, który wykorzystuje własny podpisany certyfikat stworzyłem jakiś czas temu.
Teraz - z tego, co rozumiem, Let's Encrypt wysyła żądanie do portu 80 (ponieważ korzystam z webroot
opcji certbot
). Te żądania są przekierowywane, co powoduje, że generowanie certyfikatu kończy się niepowodzeniem.
Próbowałem to osiągnąć za pomocą następującego bloku serwera, nasłuchując na porcie 80:
server {
listen 80;
server_name sub.domain.tld;
server_tokens off;
location /.well-known {
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}
Ale i tak żądania /.well-known
są przekierowywane https/443
.
W jaki sposób można przekierować wszystkie żądania od http/80
celu https/443
, z wyjątkiem wniosków o dopuszczenie do /.well-known/
?
webroot
zcertbot
opcją wymaga zwykłego http.wget
/curl
Odpowiedzi:
Spróbuj tego:
Ponieważ
try_files
na twoim serwerze wirtualnym nie było wpisu, nie wiedziało, co zrobić z przychodzącymi żądaniami/.well-known
.źródło
location
beztry_files
wysyłania pliku zroot
katalogu.try_files
i działa idealnie dla mnie. W rzeczywistości mam dokładnie taką samą konfigurację, jak podano w pytaniu. Jedyną różnicą jestlocation /.well-known/
zamiastlocation /.well-known
(zauważ ukośnik). Więc może na tym polega problem?