Kevin Papst PHP Freelancer aus München

Nginx – Deaktivieren von htpasswd für Certbot und Letsencrypt

N

Wenn man eine Webseite mittels htpaswd „absichert“, dann kann das wie folgt aussehen:

auth_basic "Restricted";
auth_basic_user_file /var/www/example.com/.htpasswd;

Problem: Certbot mag das gar nicht, wenn man versucht hiermit ein Letsencrypt Zertifikat neu zu erstellen bzw. zu aktualisieren. Die einfachste Lösung ist es, die Regel für das Verzeichnis zu deaktivieren, welches vom Acme Client standardmäßig verwendet wird:

  • /.well-known/ bzw.
  • https://example.com/.well-known/acme-challenge/

Die Regel ist simpel:

location ^~ /.well-known/ {
    auth_basic off;
}

Noch schnell ein Nginx reload hinterhergeschoben und schon klappt es mit dem Zertifikat.

Noch vollständigkeitshalber der Certbot Fehler, auf den man stößt wenn die Seite via htaccess/htpasswd abgesichert ist:

Failed authorization procedure. example.com (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from https://example.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxx [xxx.xxx.xxx.xxx]: "<html>\r\n<head><title>401 Authorization Required</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>401 Authorization Required</"

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: example.com
   Type:   unauthorized
   Detail: Invalid response from
   https://example.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxxx
   [xxx.xxx.xxx.xxx]: "<html>\r\n<head><title>401 Authorization
   Required</title></head>\r\n<body
   bgcolor=\"white\">\r\n<center><h1>401 Authorization Required</"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.
Kevin Papst PHP Freelancer aus München

Rubriken

Stichwörter

Get in touch