HTTP-01 ist der gebräuchlichste ACME-Challenge-Typ für den Erhalt eines SSL-Zertifikats. Die CA verifiziert, dass Sie eine Domain kontrollieren, indem sie eine bestimmte Datei von Ihrem Webserver über HTTP Port 80 abruft. Es ist einfacher als DNS-01, kann aber nicht für Wildcard-Zertifikate verwendet werden.
So funktioniert es
- Let’s Encrypt gibt Ihnen einen Token (eine zufällige Zeichenkette)
- Sie erstellen eine Datei unter
http://ihredomain.com/.well-known/acme-challenge/{token} - Der Dateiinhalt ist die Schlüsselautorisierung — der Token kombiniert mit dem Fingerabdruck Ihres ACME-Kontoschlüssels
- Let’s Encrypt ruft diese URL aus dem öffentlichen Internet ab
- Wenn der Inhalt übereinstimmt, wird die Challenge bestanden und Ihr Zertifikat ausgestellt
Mit GetHTTPS werden die Schritte 1 und 3 automatisch erledigt — Sie müssen nur die Datei auf Ihrem Server mit den angezeigten Werten ablegen.
So legen Sie die Challenge-Datei ab
Via SSH (Linux/Nginx/Apache)
# Verzeichnis erstellen
mkdir -p /var/www/html/.well-known/acme-challenge/
# Datei mit den exakten Werten von GetHTTPS erstellen
echo "KEY_AUTHORIZATION_FROM_GETHTTPS" > /var/www/html/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS
# Prüfen, ob es erreichbar ist
curl http://yourdomain.com/.well-known/acme-challenge/TOKEN_FROM_GETHTTPS
Via cPanel File Manager
- Navigieren Sie zu
public_html - Erstellen Sie den Ordner
.well-known→ darin den Ordneracme-challenge - Erstellen Sie eine neue Datei mit dem Token-Wert als Namen
- Fügen Sie die Schlüsselautorisierung als Dateiinhalt ein
- Stellen Sie sicher, dass die Berechtigungen 644 sind (vom Webserver lesbar)
Via FTP
- Verbinden Sie sich mit Ihrem Site-Root
- Erstellen Sie den Verzeichnispfad
.well-known/acme-challenge/ - Laden Sie eine Textdatei hoch, die nach dem Token benannt ist und die Schlüsselautorisierung enthält
Serverkonfiguration
Einige Webserver müssen konfiguriert werden, um Dateien aus .well-known auszuliefern:
Nginx
# Fügen Sie dies zu Ihrem Server-Block hinzu, wenn .well-known einen 404-Fehler zurückgibt
location /.well-known/acme-challenge/ {
root /var/www/html;
allow all;
}
Apache
Apache liefert .well-known normalerweise standardmäßig aus. Falls nicht:
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
<Directory "/var/www/html/.well-known/acme-challenge/">
AllowOverride None
Options None
Require all granted
</Directory>
Node.js / Express
app.use('/.well-known/acme-challenge', express.static('challenges'));
Anforderungen
- Die Domain muss auf eine öffentliche IP-Adresse Ihres Servers auflösen
- Port 80 muss offen sein — Let’s Encrypt validiert immer über HTTP, nicht HTTPS
- Die Antwort muss HTTP 200 OK zurückgeben
- Keine Cross-Domain-Weiterleitungen — Same-Domain-HTTP→HTTPS-Weiterleitungen sind OK
- Die Datei muss ohne Authentifizierung erreichbar sein (kein Basic Auth, keine Login-Seite)
Wann HTTP-01 verwenden
| Szenario | HTTP-01? |
|---|---|
| Einzeldomain-Zertifikat | ✅ Ja — einfachste Option |
| Domain + www-Zertifikat | ✅ Ja — eine Challenge pro Name |
Wildcard-Zertifikat (*.example.com) | ❌ Nein — verwenden Sie DNS-01 |
| Port 80 ist blockiert | ❌ Nein — verwenden Sie DNS-01 |
| Hinter Cloudflare-Proxy | ⚠️ Möglicherweise muss DNS zuerst auf graue Wolke umgestellt werden |
| Gar kein Serverzugang | ❌ Nein — verwenden Sie DNS-01 (benötigt nur DNS-Zugang) |
HTTP-01 vs DNS-01
| HTTP-01 | DNS-01 | |
|---|---|---|
| Was Sie tun | Datei auf Ihrem Server ablegen | TXT-Eintrag im DNS hinzufügen |
| Benötigter Zugang | Dateisystem des Webservers | Domain-DNS-Einstellungen |
| Port-Anforderung | Port 80 offen | Keine |
| Wildcard-Unterstützung | ❌ | ✅ |
| Geschwindigkeit | Sofort (wenn Datei erreichbar) | 1-15 Min. (DNS-Propagierung) |
| Funktioniert hinter CDN | ⚠️ Kann CDN-Bypass erfordern | ✅ Funktioniert immer |
| Am besten geeignet für | Die meisten Einzeldomain-Zertifikate | Wildcards, kein Serverzugang, CDN-Setups |
Fehlerbehebung
Challenge-Datei gibt 404 zurück
- Exakten Pfad prüfen — muss
/.well-known/acme-challenge/TOKENsein, ohne zusätzliche Schrägstriche - Dateiberechtigungen prüfen — chmod 644
- Nginx: Ihre Konfiguration blockiert möglicherweise Dotfiles. Fügen Sie den oben gezeigten
location-Block hinzu - cPanel: Der Dateimanager blendet
.well-knownmöglicherweise aus — aktivieren Sie „Versteckte Dateien anzeigen”
Challenge schlägt fehl, obwohl die Datei erreichbar ist
- Von außerhalb Ihres Netzwerks prüfen:
curl http://ihredomain.com/.well-known/acme-challenge/TOKENvon einem anderen Rechner oder verwenden Sie ein webbasiertes Tool - DNS zeigt möglicherweise auf einen anderen Server — verifizieren Sie, dass
dig +short ihredomain.comdie IP Ihres Servers zurückgibt - Cloudflare-Proxy: Schalten Sie während der Validierung vorübergehend auf DNS-only (graue Wolke) um
Port 80 ist blockiert
Einige Hoster oder Firewalls blockieren Port 80. Optionen:
- Port 80 öffnen (auch nur vorübergehend für die Validierung)
- Auf DNS-01-Challenge wechseln — benötigt kein Port 80
- Ihren Hosting-Anbieter bitten,
.well-knowndurch den Proxy durchzulassen
Fehler „too many requests”
Sie haben die Rate Limits von Let’s Encrypt erreicht. Warten und erneut versuchen. Die Vorabprüfung von GetHTTPS hilft, vergeudete Versuche zu vermeiden, indem die Erreichbarkeit der Datei vor dem Übermitteln geprüft wird.
Häufig gestellte Fragen
Kann ich die Challenge-Datei nach Erhalt des Zertifikats löschen?
Ja. Die Datei wird nur während der Validierung benötigt. Sobald Ihr Zertifikat ausgestellt ist, löschen Sie das Verzeichnis .well-known/acme-challenge/ und seinen Inhalt. Bei der Erneuerung erstellen Sie neue Dateien.
Muss die Datei über HTTPS bereitgestellt werden?
Nein. Let’s Encrypt validiert HTTP-01 immer über einfaches HTTP (Port 80), auch wenn Ihre Website HTTPS unterstützt. Same-Domain-HTTP→HTTPS-Weiterleitungen werden verfolgt, aber die erste Anfrage erfolgt immer über HTTP.
Kann ich HTTP-01 für mehrere Domains in einem Zertifikat verwenden?
Ja. Jede Domain im Zertifikat benötigt ihre eigene Challenge-Datei. Wenn Sie ein Zertifikat für example.com und www.example.com erhalten, legen Sie zwei Dateien ab — ein Token pro Domain. GetHTTPS verarbeitet sie nacheinander.
Was ist die „Vorabprüfung” in GetHTTPS?
Bevor GetHTTPS an Let’s Encrypt übermittelt, prüft es, ob Ihre Challenge-Datei aus dem öffentlichen Internet erreichbar ist (über DNS-over-HTTPS von Google). Dies erkennt Konfigurationsfehler, bevor sie einen Rate-Limit-Versuch verbrauchen — eine Funktion, die andere browserbasierte Tools nicht haben.