Live-Webseite mit HTTPS deployen
Du legst innerhalb einer Stunde eine eigene Webseite online — mit gültigem HTTPS-Zertifikat von Let's Encrypt, deiner eigenen Subdomain und echtem nginx. Du editierst HTML, prüfst nginx-Konfig und triggerst certbot. Am Ende kannst du den Link teilen — er ist live solange die Lab-Session läuft (max. 60 Minuten).
Eigene Seite mit Let's-Encrypt-Zertifikat
Live-Webseite mit HTTPS deployen
In diesem Modul bringst du innerhalb einer Stunde eine echte Webseite online — mit gültigem HTTPS-Zertifikat. Du editierst HTML, prüfst die nginx-Konfiguration und holst per certbot ein Zertifikat von Let's Encrypt.
Wichtige Begriffe
- Let's Encrypt: eine kostenlose, automatisierte Zertifizierungsstelle (CA), die echte, von Browsern akzeptierte Zertifikate ausstellt.
- certbot: das Werkzeug, das das Let's-Encrypt-Zertifikat holt und in nginx einträgt.
- HTTP-01-Challenge: Let's Encrypt prüft über Port 80, dass dir die Domain wirklich gehört — deshalb muss HTTP zuerst funktionieren.
Dein Ziel
nginx auf HTTP zum Laufen bringen, die Startseite anpassen, ein TLS-Zertifikat holen und prüfen, dass HTTPS antwortet. Der Link ist live, solange die Lab-Session läuft.
Aufgaben
1. nginx antwortet auf HTTP
Begriff: HTTP-Erreichbarkeit. Der erste Schritt jeder Deploy-Pipeline: Antwortet überhaupt ein Webserver? Ohne
200 OKauf Port 80 kann später auch die HTTPS-Pipeline nicht laufen (Let's Encrypt braucht Port 80 für die Challenge).Stelle sicher, dass nginx läuft, und prüfe:
sudo systemctl enable --now nginx curl -sI http://localhost/Kommt
502? Dannsudo systemctl status nginxansehen.Kontrolle:
curl -sI http://localhost/liefert eineHTTP/... 200-Statuszeile.2. index.html anpassen
Begriff: Document-Root. nginx liefert die Dateien aus einem Verzeichnis aus — dem Document-Root (
/var/www/lab/). Die Startseite istindex.html. Mache sie zu deiner eigenen.Bearbeite
/var/www/lab/index.html(sudo nano /var/www/lab/index.html) und füge den Titel ein:<h1>Meine erste eigene Webseite</h1>Kontrolle:
/var/www/lab/index.htmlenthält den TextMeine erste eigene Webseite.3. HTTPS-Zertifikat geholt
Begriff: certbot & automatische Konfiguration.
certbotmit dem nginx-Plugin holt das Zertifikat und trägt es automatisch in die nginx-Config ein (diessl_certificate-Zeile zeigt dann nach/etc/letsencrypt/live/...).Hole das Zertifikat für deine Lab-Domain (certbot fragt sie ab bzw. nutzt die vorbereitete):
sudo certbot --nginx --non-interactive --agree-tos -m student@example.comcertbot richtet zugleich die HTTP→HTTPS-Weiterleitung ein.
Kontrolle:
/etc/nginx/sites-enabled/lab-deploy.confenthältssl_certificate /etc/letsencrypt/live/....4. HTTPS antwortet mit 200 OK
Begriff: Final-Check. Spricht nginx jetzt wirklich TLS und liefert deine Seite per HTTPS aus? Auch
301/302(HTTP→HTTPS-Weiterleitung) zählen als Erfolg.curl -sIk https://localhost/-kignoriert den Cert-Hostname-Mismatch (das Cert ist für deine Lab-Domain, nicht „localhost"). Kommt „Failed to connect to port 443"? Dann ist certbot noch nicht durch.Kontrolle:
curl -sIk https://localhost/liefertHTTP/... 200,301oder302.
Jetzt selbst üben
Lesen ist gut – selbst machen ist besser. Starte diesen Kurs an einer echten Linux-VM, direkt im Browser. Ein kostenloses Konto genügt.
Kostenlos startenLab-Inhalte unter CC BY 4.0 – frei nutzbar mit Namensnennung (© TechLogia).
