0%
Anfänger 30 Minuten Server

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.

Certbot - Kostenloses HTTPS für deinen VPS
Anfänger
💻 Debian 💻 Ubuntu 💻 VPS

🎯 Was du lernst

Was ist HTTPS und warum ist es wichtig?
Certbot auf Debian/Ubuntu installieren
SSL-Zertifikat beantragen und einrichten
Automatische Erneuerung konfigurieren
Best Practice Sicherheitstipps

🌐 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:

3. Was passiert ohne HTTPS?


4. Certbot installieren

5. Voraussetzungen

Vor der Installation solltest du sicherstellen:

  1. Du hast einen VPS mit Debian oder Ubuntu
  2. Eine Domain zeigt auf deine Server-IP
  3. 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?

  1. Certbot kontrolliert, ob du die Domain besitzt
  2. Ein temporärer Webserver wird gestartet
  3. Let’s Encrypt verifiziert die Domain
  4. Zertifikate werden in /etc/letsencrypt/live/deinedomain.de/ gespeichert

14. Zertifikate speichern

Nach erfolgreicher Installation findest du die Zertifikate unter:


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

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:

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

Alle Tutorials ansehen