Certbot - Kostenloses HTTPS für deinen VPS
Schritt-für-Schritt Anleitung zur Installation und Konfiguration von Certbot für kostenlose SSL/TLS-Zertifikate auf deinem VPS.
🎯 Was du lernst
🌐 Empfohlener VPS-Anbieter
Für dieses Tutorial benötigst du einen VPS. Unsere Empfehlung:
netcup - ab 1€/Monat, Deutschland, DSGVO-konform
Mehr erfahren →* Affiliate-Link.
📑 Inhaltsverzeichnis
Anleitung
1. Was ist HTTPS und warum ist es wichtig?
2. Sicherheitsaspekte
HTTPS (Hypertext Transfer Protocol Secure) ist die sichere Version von HTTP. Hier sind die wichtigsten Gründe, warum HTTPS unverzichtbar ist:
-
Verschlüsselung: Alle Daten zwischen Browser und Server sind verschlüsselt. Passwörter, persönliche Daten und Zahlungsinformationen sind geschützt.
-
Authentifizierung: Du weißt sicher, dass du wirklich mit deinem Server kommunizierst und nicht mit einem Angreifer.
-
Datenintegrität: Die Daten können nicht unbemerkt manipuliert werden.
-
SEO-Vorteil: Google rankt HTTPS-Seiten höher.
-
Vertrauen: Besucher sehen das grüne Schloss-Symbol im Browser.
3. Was passiert ohne HTTPS?
- Passwörter werden im Klartext übertragen
- Session-Cookies können gestohlen werden
- Man-in-the-Middle Angriffe möglich
- Browser zeigen “Nicht sicher” Warnung
4. Certbot installieren
5. Voraussetzungen
Vor der Installation solltest du sicherstellen:
- Du hast einen VPS mit Debian oder Ubuntu
- Eine Domain zeigt auf deine Server-IP
- Nginx oder Apache ist installiert
6. Schritt 1: System aktualisieren
sudo apt update && sudo apt upgrade -y
7. Schritt 2: Certbot installieren
Für Nginx:
sudo apt install certbot python3-certbot-nginx -y
Für Apache:
sudo apt install certbot python3-certbot-apache -y
Oder nur das Certbot-Paket:
sudo apt install certbot -y
8. Schritt 3: Firewall anpassen
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
9. SSL-Zertifikat beantragen
10. Mit Nginx
sudo certbot --nginx -d deinedomain.de -d www.deinedomain.de
11. Mit Apache
sudo certbot --apache -d deinedomain.de -d www.deinedomain.de
12. Ohne Webserver (Standalone)
sudo certbot certonly --standalone -d deinedomain.de -d www.deinedomain.de
13. Was passiert bei der Beantragung?
- Certbot kontrolliert, ob du die Domain besitzt
- Ein temporärer Webserver wird gestartet
- Let’s Encrypt verifiziert die Domain
- Zertifikate werden in
/etc/letsencrypt/live/deinedomain.de/gespeichert
14. Zertifikate speichern
Nach erfolgreicher Installation findest du die Zertifikate unter:
- Zertifikat:
/etc/letsencrypt/live/deinedomain.de/fullchain.pem - Privater Schlüssel:
/etc/letsencrypt/live/deinedomain.de/privkey.pem
15. Nginx-Konfiguration anpassen
16. Automatische Weiterleitung auf HTTPS
Erstelle oder bearbeite die Nginx-Konfiguration:
sudo nano /etc/nginx/sites-available/default
Füge folgenden Code hinzu (vor allen anderen Server-Blöcken):
server {
listen 80;
server_name deinedomain.de www.deinedomain.de;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name deinedomain.de www.deinedomain.de;
ssl_certificate /etc/letsencrypt/live/deinedomain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/deinedomain.de/privkey.pem;
# SSL-Sicherheitseinstellungen
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Teste und lade Nginx neu:
sudo nginx -t
sudo systemctl reload nginx
17. Automatische Erneuerung einrichten
18. Wie funktioniert die Erneuerung?
Let’s Encrypt Zertifikate sind 90 Tage gültig. Certbot richtet automatisch einen Cron-Job ein.
19. Überprüfen
sudo systemctl status certbot.timer
20. Manuelle Erneuerung testen
sudo certbot renew --dry-run
21. Erneuerung manuell auslösen
sudo certbot renew
22. Cron-Job anpassen
Die Erneuerung läuft standardmäßig zweimal täglich. Um sicherzugehen:
sudo crontab -e
Füge hinzu:
0 0,12 * * * certbot renew --quiet --deploy-hook "systemctl reload nginx"
Dies erneuert Zertifikate täglich um Mitternacht und Mittag.
23. Best Practice Sicherheitstipps
24. Starke SSL-Konfiguration
Verwende nur sichere Protokolle und Chiffren:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
25. HSTS aktivieren
Füge diesen Header hinzu:
add_header Strict-Transport-Security "max-age=63072000" always;
26. OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
27. Zertifikatsübersicht
Alle deine Zertifikate anzeigen:
sudo certbot certificates
28. Zertifikat widerrufen (falls kompromittiert)
sudo certbot revoke --cert-path /etc/letsencrypt/live/deinedomain.de/cert.pem
sudo certbot delete --cert-name deinedomain.de
29. Troubleshooting
30. Problem: Domain-Verifikation fehlgeschlagen
- Prüfe ob die Domain auf die richtige IP zeigt
- Firewall Ports 80 und 443 sind offen
- Kein anderes Programm nutzt Port 80
31. Problem: Zertifikat läuft ab
sudo certbot renew
32. Problem: Nginx startet nicht
sudo nginx -t
# Fehlermeldung prüfen
33. Problem: Mixed Content Warnings
Stelle sicher, dass alle Ressourcen (Bilder, CSS, JS) über HTTPS geladen werden.
34. Zusammenfassung
Was du heute gelernt hast:
✅ Was HTTPS ist und warum es wichtig ist ✅ Certbot installieren ✅ SSL-Zertifikat beantragen ✅ Nginx für HTTPS konfigurieren ✅ Automatische Erneuerung einrichten ✅ Best Practice Sicherheitstipps
Nächste Schritte:
- Teste deine Konfiguration mit SSL Labs
- Richte ein Monitoring für Zertifikatsabläufe ein
- Erwäge Additional Domains hinzuzufügen
Viel Erfolg mit deinem sicheren HTTPS-Server! 🔒
Das könnte dich auch interessieren
✅ Geschafft!
Du hast dieses Tutorial abgeschlossen. Hast du Fragen oder Probleme?
Schreib uns auf Instagram