aslain.dev
0%
01 Hizmetler 02 Hakkımda 03 Projeler 04 Stack 05 Blog 06 İletişim
← Tüm makaleler Webentwicklung

SSL-Zertifikat einrichten: HTTPS mit Let's Encrypt

Ein SSL-Zertifikat verschlüsselt den Datenverkehr zwischen Besucher und Server und sorgt für das Schloss-Symbol in der Adressleiste. HTTPS ist kein Luxus mehr: Google wertet es als leichtes Ranking-Signal, moderne Browser markieren unverschlüsselte Formulare als „Nicht sicher", und für jede Seite mit Kontaktformular, Login-Bereich oder Bezahlschritt ist es Pflicht. Die gute Nachricht: Mit Let's Encrypt installieren Sie ein gültiges Zertifikat kostenlos in wenigen Befehlen. In dieser Anleitung führe ich die komplette Einrichtung mit Certbot auf einem Linux-VPS für Nginx oder Apache durch — samt automatischer Erneuerung und einer sicheren Weiterleitung von HTTP zu HTTPS.

SSL, TLS und HTTPS: der Unterschied

Klären wir zuerst die Begriffe, denn sie werden oft verwechselt. TLS (Transport Layer Security) ist das aktuelle Protokoll, das den Verkehr verschlüsselt; SSL ist dessen alter Name, doch alle sagen weiterhin „SSL-Zertifikat". HTTPS ist schlicht HTTP, das über diese TLS-Schicht läuft. Die Datei, die Sie auf dem Server installieren, ist technisch ein TLS-Zertifikat, aber in der Praxis sprechen wir alle vom Gleichen.

Let's Encrypt stellt Zertifikate vom Typ Domain Validation (DV) aus: Sie belegen, dass Sie die Domain kontrollieren, nicht die rechtliche Identität Ihres Unternehmens. Für die meisten Blogs, Firmenseiten und Anwendungen ist das mehr als ausreichend — Schloss und Verschlüsselung sind identisch mit denen kostenpflichtiger Zertifikate. Der einzige nennenswerte Unterschied ist die Gültigkeit von 90 Tagen, weshalb die automatische Erneuerung das Herzstück des Ganzen ist.

Was Sie vor dem Start brauchen

  • Eine Domain mit einem A- (oder AAAA-)DNS-Eintrag, der auf die IP Ihres Servers zeigt.
  • SSH-Zugang zum Server mit sudo-Rechten.
  • Einen laufenden Webserver: Nginx oder Apache.
  • Die Ports 80 und 443 in der Firewall geöffnet — Let's Encrypt validiert über Port 80.

Prüfen Sie vor dem Start mit dig +short ihredomain.com, ob der DNS-Eintrag propagiert ist und die richtige IP zurückgibt. Ein falsch konfigurierter Eintrag ist der häufigste Grund für eine fehlgeschlagene Validierung.

Certbot installieren

Certbot ist der offizielle Client von Let's Encrypt und automatisiert das Beziehen des Zertifikats, das Anpassen der Konfiguration und die Erneuerung. Der empfohlene Weg ist das snap-Paket, weil es stets die neueste Version liefert. Unter Ubuntu/Debian:

sudo apt update
sudo apt install snapd -y
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Möchten Sie kein snap nutzen, installieren Sie es aus dem Distributions-Repository mit sudo apt install certbot python3-certbot-nginx (oder python3-certbot-apache für Apache); die Version ist eventuell etwas älter, funktioniert aber.

Ein Zertifikat für Nginx beziehen

Am einfachsten ist das Nginx-Plugin von Certbot. Ein einziger Befehl bezieht das Zertifikat und fügt den HTTPS-Block automatisch in Ihre Konfiguration ein:

sudo certbot --nginx -d ihredomain.com -d www.ihredomain.com

Certbot fragt nach einer E-Mail-Adresse (für Erneuerungshinweise) und nach der Zustimmung zu den Nutzungsbedingungen. Anschließend fragt es, ob HTTP-Anfragen automatisch zu HTTPS umgeleitet werden sollen — wählen Sie die Option „Redirect". Nach Abschluss sieht Ihr Server-Block etwa so aus:

server {
    listen 443 ssl;
    server_name ihredomain.com www.ihredomain.com;

    ssl_certificate     /etc/letsencrypt/live/ihredomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ihredomain.com/privkey.pem;

    # ... der Rest der Konfiguration Ihrer Anwendung
}

Certbot fügt außerdem einen zweiten Block hinzu, der auf Port 80 lauscht und allen Verkehr auf https:// umleitet. Um die Änderung anzuwenden, testen und laden Sie neu mit sudo nginx -t && sudo systemctl reload nginx.

Wenn Sie Apache nutzen

Die Logik auf der Apache-Seite ist dieselbe; nur das Plugin ändert sich:

sudo certbot --apache -d ihredomain.com -d www.ihredomain.com

Certbot aktiviert die Module mod_ssl und mod_rewrite, erstellt eine SSL-VirtualHost-Datei und fügt die Weiterleitungsregel hinzu. Möchten Sie nur das Zertifikat beziehen, statt Certbot den Webserver bearbeiten zu lassen, führen Sie auf beiden Servern sudo certbot certonly --webroot -w /var/www/ihredomain -d ihredomain.com aus und binden die Konfiguration von Hand ein.

Automatische Erneuerung: der wichtigste Schritt

Da Let's-Encrypt-Zertifikate 90 Tage gelten, ist das Vergessen der Erneuerung der häufigste Weg, die Seite eines Morgens nicht mehr erreichbar vorzufinden. Glücklicherweise richtet eine snap- oder Paketinstallation von Certbot automatisch einen systemd timer (oder einen Cron-Job) ein, der zweimal täglich läuft und erneuert, sobald das Zertifikat in seine letzten 30 Tage kommt. Um zu prüfen, ob der Timer aktiv ist:

systemctl list-timers | grep certbot

Um zu verifizieren, dass die Erneuerung reibungslos funktioniert, ohne tatsächlich zu erneuern, führen Sie einen Probelauf aus:

sudo certbot renew --dry-run

Schließt dieser Befehl ohne Fehler ab, ist die automatische Erneuerung sicher und Sie müssen sich nie wieder darum kümmern. Nach einer Erneuerung muss der Webserver das neue Zertifikat laden; die Nginx/Apache-Plugins erledigen das, doch wenn Sie von Hand mit certonly installiert haben, denken Sie an --deploy-hook "systemctl reload nginx".

Nach der Einrichtung: HTTPS härten

Das Zertifikat funktioniert, aber einige Zusatzeinstellungen stärken Sicherheit und SEO:

  • HSTS-Header: Der Strict-Transport-Security-Header weist Browser an, die Seite ausschließlich über HTTPS zu öffnen. Beginnen Sie mit einer kurzen Dauer und erhöhen Sie sie, sobald Sie sicher sind, dass die Einrichtung dauerhaft ist.
  • Mixed Content: Stellen Sie sicher, dass jedes Bild, Skript und Stylesheet auf der Seite https:// verwendet oder protokollrelativ (//) ist; sonst bricht das Schloss-Symbol.
  • Weiterleitung prüfen: curl -I http://ihredomain.com sollte einen 301 zurückgeben, der auf die HTTPS-Adresse zeigt.
  • SSL-Labs-Test: Scannen Sie Ihre Konfiguration mit dem kostenlosen SSL Labs Server Test und streben Sie mindestens die Note „A" an.

Häufige Fragen

Ist ein Let's-Encrypt-Zertifikat wirklich kostenlos und sicher?

Ja. Let's Encrypt ist eine gemeinnützige Zertifizierungsstelle, der die großen Browser und Betriebssysteme vertrauen. Die Verschlüsselungsstärke ist identisch mit der kostenpflichtiger DV-Zertifikate; der einzige Unterschied sind die 90 Tage Gültigkeit und die Notwendigkeit der automatischen Erneuerung.

Ich kann Certbot auf Shared Hosting nicht nutzen — was nun?

Viele Shared-Hosting-Panels (cPanel, Plesk, DirectAdmin) bieten bereits ein integriertes „AutoSSL" oder Let's Encrypt mit einem Klick. In dem Fall fassen Sie die Befehlszeile nie an: Wählen Sie einfach Ihre Domain im Panel aus und aktivieren Sie SSL.

Kann ich ein Wildcard-Zertifikat erhalten?

Ja. Ein Wildcard wie *.ihredomain.com erfordert die DNS-01-Validierung: sudo certbot certonly --manual --preferred-challenges dns -d "*.ihredomain.com". Wird die API Ihres DNS-Anbieters unterstützt, lässt sich auch diese Validierung automatisieren.

Möchten Sie Ihre Seite auf sicheres HTTPS umstellen? Wenn Sie Hilfe bei Serverkonfiguration, Zertifikatsautomatisierung oder Performance brauchen, nehmen Sie Kontakt auf — ich übernehme die komplette Einrichtung von Anfang bis Ende für Sie.

Bu kategorideki tüm yazılar →

Devamı için