Ich versuche, von selbstsignierten Zertifikaten zu Let's Encrypt-Zertifikaten auf meinem Nginx-Webserver zu wechseln.
Derzeit leite ich alle Anfragen an http/80
weiter https/443
, wobei ein selbstsigniertes Zertifikat verwendet wird, das ich vor einiger Zeit erstellt habe.
Nun - soweit ich weiß, stellt Let's Encrypt eine Anfrage an Port 80 (da ich die webroot
Option von verwende certbot
). Diese Anforderungen werden umgeleitet, wodurch die Zertifikatgenerierung nicht erfolgreich ist.
Ich habe versucht, dies mit dem folgenden Serverblock zu erreichen, der Port 80 überwacht:
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;
}
}
Anfragen /.well-known
werden aber https/443
trotzdem weitergeleitet.
Wie kann ich alle Anfragen von http/80
bis https/443
mit Ausnahme der Anfragen an umleiten /.well-known/
?
webroot
ofcertbot
nur einfaches http.wget
/curl
Antworten:
Versuche dies:
Da
try_files
Ihr virtueller Server keinen Eintrag enthielt, wusste er nicht, was er mit eingehenden Anfragen tun sollte/.well-known
.quelle
location
ohnetry_files
nur Datei aus demroot
Verzeichnis zu senden.try_files
und es funktioniert perfekt für mich. Tatsächlich habe ich genau die gleiche Konfiguration wie in der Frage angegeben. Der einzige Unterschied istlocation /.well-known/
stattlocation /.well-known
(beachten Sie den abschließenden Schrägstrich). Vielleicht liegt dort das Problem?