Kapitel 5 · 5.1
Caddy: eine Website mit automatischem HTTPS
Caddy ist ein Webserver, der selbst ein Zertifikat von Let's Encrypt anfordert und es rechtzeitig erneuert. Sie müssen certbot nicht einrichten. Für einen neuen Server ist Caddy deshalb die einfachste Wahl.
Was muss vorbereitet sein?
- Der A- und der AAAA-Record Ihres Namens zeigen auf Ihren VPS (siehe Ein A- und AAAA-Record in Meine Domains).
- Port 80 und 443 sind in Ihrer Firewall geöffnet (siehe Eine Firewall mit ufw (oder nftables)). Let's Encrypt prüft über Port 80, ob Sie den Namen wirklich verwalten.
- Auf Port 80 oder 443 läuft kein anderer Webserver, etwa nginx oder Apache.
Caddy installieren
anna@web1:~$ sudo apt install caddy
anna@web1:~$ systemctl status caddy
Caddy ist in der Paketquelle von Debian und Ubuntu enthalten und startet sofort als Dienst. Möchten Sie immer die neueste Version, verwenden Sie die Paketquelle von Caddy selbst, wie unter caddyserver.com/docs/install beschrieben.
Ihre erste Website
Legen Sie Ihre Dateien in einem Ordner ab, zum Beispiel /srv/www/example.com, und öffnen Sie die Konfigurationsdatei:
anna@web1:~$ sudo mkdir -p /srv/www/example.com
anna@web1:~$ echo '<h1>Het werkt</h1>' | sudo tee /srv/www/example.com/index.html
anna@web1:~$ sudo nano /etc/caddy/Caddyfile
Ersetzen Sie den Inhalt durch:
example.com, www.example.com {
root * /srv/www/example.com
file_server
encode zstd gzip
}
anna@web1:~$ caddy validate --config /etc/caddy/Caddyfile
anna@web1:~$ sudo systemctl reload caddy
Öffnen Sie https://example.com. Caddy holt das Zertifikat beim ersten Aufruf oder innerhalb weniger Sekunden nach dem Neuladen und leitet http automatisch auf https weiter.
Funktioniert es nicht?
anna@web1:~$ journalctl -u caddy --since "10 minutes ago"
Die häufigsten Ursachen: Das DNS zeigt noch nicht auf Ihren VPS, Port 80 ist geschlossen oder auf Port 80 läuft bereits etwas anderes. Mehr dazu in Website nicht erreichbar, 502 Bad Gateway oder Zertifikatsfehler.
Tipp: Fügen Sie im Caddyfile ganz oben einen Block mit Ihrer E-Mail-Adresse ein. Dann kann Let's Encrypt Sie erreichen, wenn mit Ihren Zertifikaten etwas nicht stimmt:
{
email beheer@example.com
}