Om du använder Let's Encrypt för att säkra din webbplats med HTTPS kan du stöta på följande felmeddelande när du försöker utfärda eller förnya ett certifikat:
Let's Encrypt fick ett ogiltigt svar från
http:// /.välkänd/acme-utmaning/
Detta innebär vanligtvis att Let's Encrypt inte kunde nå utmaningsfilen på din server via HTTP. Utan att kunna validera domänägarskapet kommer Let's Encrypt inte att kunna utfärda eller förnya SSL-certifikatet.
Varför detta händer
Let's Encrypt använder en HTTP-01-utmaning för att bekräfta att du äger domänen. Detta kräver att din webbserver:
- Acceptera HTTP-förfrågningar (port 80).
- Servera statiska filer under sökvägen
/.välkänd/acme-utmaning/.
I många säkra Nginx-inställningar är dock endast HTTPS (port 443) aktiverat. Om du inte uttryckligen tillåter HTTP-förfrågningar – eller omdirigerar allt till HTTPS utan att göra ett undantag för utmaningssökvägen – kommer Let's Encrypt inte att kunna slutföra valideringen.
Fixen: Lägg till ett dedikerat HTTP-serverblock
För att lösa detta, lägg till ett nytt serverblock i din Nginx-konfiguration för att hantera HTTP-förfrågningar, vilket specifikt tillåter Let's Encrypt att komma åt utmaningssökvägen:
server { lyssna 80; lyssna [::]:80; servernamn exempel.com; # Tillåt Let's Encrypt ACME challenge requests plats /.well-known/acme-challenge/ { root /var/www/example.com/public; tillåt alla; } # Omdirigera all annan trafik till HTTPS-plats / { return 301 https://$host$request_uri; } }
Den här konfigurationen gör två saker:
- Det tillåter förfrågningar att
/.välkänd/acme-utmaning/så att Let's Encrypt kan validera din domän. - Den omdirigerar all annan HTTP-trafik till HTTPS för säkerhets skull.
Notera: Ersätta /var/www/example.com/public med den faktiska rotsökvägen för din webbapp.
Efter uppdatering av Nginx
När du har lagt till serverblocket:
- Testa konfigurationen för att säkerställa att det inte finns några syntaxfel:
sudo nginx -t - Ladda om Nginx för att tillämpa ändringarna:
sudo systemctl ladda om nginx
Nu borde Let's Encrypt kunna komma åt utmaningsfilerna och utfärda eller förnya ditt certifikat utan fel.
Slutliga anteckningar
- Den här lösningen förutsätter att du använder HTTP-01-utmaningsmetoden, vilket är den vanligaste.
- Om du använder ett verktyg som Certbot eller en webbhotellsplattform som Laravel Forge placerar de vanligtvis utmaningsfilerna på rätt plats automatiskt – du behöver bara se till att din server tillåter åtkomst till dem.
- Se till att inga andra regler i din konfiguration (som de som blockerar dolda filer eller vissa mappar) stör åtkomsten till
/.välkänd/katalog.
Felsökningstips
Om det fortfarande inte fungerar:
- Kontrollera din brandvägg eller molnleverantör för att säkerställa att port 80 är öppen.
- Se till att utmaningsfilen faktiskt finns i rätt sökväg under valideringsprocessen.
- Titta på dina Nginx-loggar (
/var/log/nginx/error.log) för ledtrådar.
Genom att tillåta precis tillräckligt med åtkomst för Let's Encrypt samtidigt som allt annat är låst och omdirigerat till HTTPS, hittar du en perfekt balans mellan säkerhet och automatisering.
Senast uppdaterad 17 juli 2025

