Als u Let's Encrypt gebruikt om uw website te beveiligen met HTTPS, kunt u de volgende foutmelding krijgen wanneer u een certificaat wilt uitgeven of verlengen:
Let's Encrypt heeft een ongeldig antwoord ontvangen van
http:// /.well-known/acme-challenge/
Dit betekent meestal dat Let's Encrypt het challenge-bestand op uw server niet via HTTP heeft kunnen bereiken. Zonder de domeineigendom te kunnen valideren, kan Let's Encrypt het SSL-certificaat niet uitgeven of verlengen.
Waarom dit gebeurt
Let's Encrypt gebruikt een HTTP-01-challenge om te bevestigen dat u de eigenaar bent van het domein. Hiervoor moet uw webserver:
- HTTP-verzoeken (poort 80) accepteren.
- Statische bestanden onder het pad serveren
/.well-known/acme-challenge/.
In veel beveiligde Nginx-configuraties is echter alleen HTTPS (poort 443) ingeschakeld. Als u HTTP-verzoeken niet expliciet toestaat, of als u alles naar HTTPS omleidt zonder een uitzondering te maken voor het challenge-pad, kan Let's Encrypt de validatie niet voltooien.
De oplossing: voeg een speciaal HTTP-serverblok toe
Om dit probleem op te lossen, voegt u een nieuw serverblok toe aan uw Nginx-configuratie om HTTP-verzoeken te verwerken, waarbij u Let's Encrypt specifiek toegang geeft tot het challenge-pad:
server { listen 80; listen [::]:80; server_name example.com; # Let's Encrypt ACME challenge-verzoeken toestaan locatie /.well-known/acme-challenge/ { root /var/www/example.com/public; allow all; } # Leid al het andere verkeer om naar HTTPS locatie / { return 301 https://$host$request_uri; } }
Deze configuratie doet twee dingen:
- Het maakt verzoeken mogelijk om
/.well-known/acme-challenge/zodat Let's Encrypt uw domein kan valideren. - Om veiligheidsredenen wordt al het overige HTTP-verkeer omgeleid naar HTTPS.
Opmerking: Vervangen /var/www/example.com/public met het werkelijke rootpad van uw web-app.
Na het updaten van Nginx
Nadat u het serverblok hebt toegevoegd:
- Test de configuratie om er zeker van te zijn dat er geen syntaxisfouten zijn:
sudo nginx -t - Nginx opnieuw laden om de wijzigingen toe te passen:
sudo systemctl herlaad nginx
Nu zou Let's Encrypt toegang moeten hebben tot de challenge-bestanden en uw certificaat zonder fouten moeten kunnen uitgeven of vernieuwen.
Laatste opmerkingen
- Bij deze oplossing wordt ervan uitgegaan dat u de HTTP-01 challenge-methode gebruikt. Dit is de meest gebruikelijke methode.
- Als je een tool als Certbot of een hostingplatform als Laravel Forge gebruikt, worden de challenge-bestanden doorgaans automatisch op de juiste locatie geplaatst. Je hoeft er alleen voor te zorgen dat je server toegang toe verleent.
- Zorg ervoor dat er geen andere regels in uw configuratie (zoals regels die verborgen bestanden of bepaalde mappen blokkeren) de toegang tot de
/.welbekend/gids.
Tips voor probleemoplossing
Als het nog steeds niet werkt:
- Controleer uw firewall of cloudprovider om er zeker van te zijn dat poort 80 open is.
- Controleer of het challenge-bestand daadwerkelijk in het juiste pad staat tijdens het validatieproces.
- Bekijk je Nginx-logs (
/var/log/nginx/error.log) voor aanwijzingen.
Door alleen Let's Encrypt toegang te verlenen en de rest te vergrendelen en om te leiden naar HTTPS, creëert u de perfecte balans tussen beveiliging en automatisering.
Laatst bijgewerkt op 17 juli 2025

