Wenn Sie Let’s Encrypt verwenden, um Ihre Website mit HTTPS zu sichern, kann beim Versuch, ein Zertifikat auszustellen oder zu erneuern, der folgende Fehler auftreten:
Let's Encrypt erhielt eine ungültige Antwort von
http:// /.bekannt/acme-challenge/
Dies bedeutet in der Regel, dass Let's Encrypt die Challenge-Datei auf Ihrem Server nicht über HTTP erreichen konnte. Ohne die Möglichkeit, den Domänenbesitz zu bestätigen, kann Let's Encrypt das SSL-Zertifikat weder ausstellen noch erneuern.
Warum das passiert
Let's Encrypt verwendet eine HTTP-01-Challenge, um zu bestätigen, dass Sie der Domaininhaber sind. Dies erfordert von Ihrem Webserver Folgendes:
- Akzeptieren Sie HTTP-Anfragen (Port 80).
- Stellen Sie statische Dateien unter dem Pfad bereit
/.bekannt/acme-challenge/.
In vielen sicheren Nginx-Setups ist jedoch nur HTTPS (Port 443) aktiviert. Wenn Sie HTTP-Anfragen nicht explizit zulassen oder alles auf HTTPS umleiten, ohne eine Ausnahme für den Challenge-Pfad zu machen, kann Let’s Encrypt die Validierung nicht abschließen.
Die Lösung: Fügen Sie einen dedizierten HTTP-Serverblock hinzu
Um dies zu beheben, fügen Sie in Ihrer Nginx-Konfiguration einen neuen Serverblock hinzu, um HTTP-Anfragen zu verarbeiten, und erlauben Sie Let’s Encrypt insbesondere den Zugriff auf den Challenge-Pfad:
Server { listen 80; listen [::]:80; Servername example.com; # Let’s Encrypt ACME-Challenge-Anfragen zulassen. Standort /.well-known/acme-challenge/ { root /var/www/example.com/public; alles zulassen; } # Den gesamten anderen Datenverkehr an den HTTPS-Standort umleiten / { return 301 https://$host$request_uri; } }
Diese Konfiguration bewirkt zwei Dinge:
- Es ermöglicht Anfragen an
/.bekannt/acme-challenge/damit Let’s Encrypt Ihre Domain validieren kann. - Aus Sicherheitsgründen wird der gesamte andere HTTP-Verkehr auf HTTPS umgeleitet.
Notiz: Ersetzen /var/www/example.com/public durch den tatsächlichen Stammpfad Ihrer Web-App.
Nach der Aktualisierung von Nginx
Nachdem Sie den Serverblock hinzugefügt haben:
- Testen der Konfiguration um sicherzustellen, dass keine Syntaxfehler vorliegen:
sudo nginx -t - Nginx neu laden So wenden Sie die Änderungen an:
sudo systemctl nginx neu laden
Jetzt sollte Let’s Encrypt auf die Challenge-Dateien zugreifen und Ihr Zertifikat ohne Fehler ausstellen oder erneuern können.
Abschließende Anmerkungen
- Diese Lösung setzt voraus, dass Sie die am häufigsten verwendete HTTP-01-Challenge-Methode verwenden.
- Wenn Sie ein Tool wie Certbot oder eine Hosting-Plattform wie Laravel Forge verwenden, werden die Challenge-Dateien normalerweise automatisch am richtigen Ort abgelegt. Sie müssen lediglich sicherstellen, dass Ihr Server den Zugriff darauf zulässt.
- Stellen Sie sicher, dass keine anderen Regeln in Ihrer Konfiguration (wie etwa solche, die versteckte Dateien oder bestimmte Ordner blockieren) den Zugriff auf die
/.bekannt/Verzeichnis.
Tipps zur Fehlerbehebung
Wenn es immer noch nicht funktioniert:
- Überprüfen Sie Ihre Firewall oder Ihren Cloud-Anbieter, um sicherzustellen, dass Port 80 geöffnet ist.
- Stellen Sie sicher, dass die Challenge-Datei während des Validierungsprozesses tatsächlich im richtigen Pfad vorhanden ist.
- Schauen Sie sich Ihre Nginx-Protokolle an (
/var/log/nginx/error.log) nach Hinweisen.
Indem Sie Let’s Encrypt gerade genug Zugriff gewähren und gleichzeitig alles andere gesperrt und auf HTTPS umgeleitet halten, erreichen Sie ein perfektes Gleichgewicht zwischen Sicherheit und Automatisierung.
Zuletzt aktualisiert am 17. Juli 2025

