·Server / Hosting

Fix: Could not issue/renew Let's Encrypt certificates for Plesk with Nginx

Behebung des Plesk-Fehlers: Could not issue/renew Let's Encrypt certificates. Lösung für 403 Unauthorized bei /.well-known/acme-challenge unter Nginx.

post plesk nginx letsencrypt ssl howto server

Fehler beim Erneuern von Let's Encrypt SSL-Zertifikaten unter Plesk mit Nginx in Kombination mit Nginx sind ein klassisches Problem. Die folgende Fehlermeldung tritt häufig bei automatisch laufenden Renew-Jobs auf und verhindert die erfolgreiche Zertifikatserneuerung.

Fehlermeldung

Could not secure domains of yourdomain.de (login admin) with Let's Encrypt certificates.
Please log in to Plesk and secure the domains listed below manually.

Could not renew Let's Encrypt certificates for yourdomain.de (login admin).
Invalid response from http://yourdomain.de/.well-known/acme-challenge/...
Type: urn:acme:error:unauthorized
Status: 403
Detail: 404 Not Found

Ursache ist fast immer identisch: Der Pfad /.well-known/acme-challenge/ ist unter Nginx nicht erreichbar, weil HTTPS erzwungen wird oder keine explizite Location-Regel existiert.

Das vollständige Deaktivieren von SSL wäre zwar eine schnelle Lösung, ist aber keine akzeptable Option für produktive Systeme.

Lösung: Let's Encrypt Problem unter Plesk mit Nginx beheben

  1. Öffne Websites & Domains
  2. Wähle die betroffene Domain
  3. Gehe zu Einstellungen für Apache & nginx
  4. Füge unter Zusätzliche nginx-Anweisungen Folgendes ein:
location ^~ /.well-known/acme-challenge/ {
    default_type "text/plain";
}

Diese Regel erlaubt den HTTP-Zugriff auf den ACME-Challenge-Pfad, ohne bestehende HTTPS-Weiterleitungen oder Sicherheitsmechanismen zu brechen.

Nach dem Speichern der Konfiguration kann das Let's Encrypt Zertifikat erneut ausgestellt bzw. verlängert werden.

Ergebnis

  • Keine 403 / 404 Fehler mehr bei ACME-Challenges
  • Automatische Zertifikatserneuerung funktioniert wieder
  • Kein Abschalten von SSL oder Redirects notwendig

Die Lösung ist dauerhaft, updatesicher und funktioniert sowohl für einzelne Domains als auch für Subdomains.