SSL / TLS Best Practices

01 December 2025
Zusammenfassung: Dieser Artikel bietet eine Schritt-für-Schritt-Anleitung zur Implementierung moderner SSL/TLS-Konfigurationen für maximale Sicherheit, Leistung und Kompatibilität.

SSL / TLS Best Practices

🎯 Einführung

Sichere Kommunikation ist eine der Grundsäulen moderner Webinfrastruktur.\ Um die Vertraulichkeit und Integrität von Daten zu schützen, die über das Internet übertragen werden, verwenden wir SSL (Secure Sockets Layer) und seinen Nachfolger TLS (Transport Layer Security).

Leider sind viele Systeme noch immer falsch konfiguriert oder verwenden veraltete Cipher Suites, was sowohl Benutzerdaten als auch die Serverintegrität gefährdet.

In diesem Leitfaden erfahren Sie, wie Sie eine moderne SSL/TLS-Umgebung einrichten -- von TLS 1.3 und Perfect Forward Secrecy bis hin zu HSTS, OCSP Stapling und automatischer Zertifikatserneuerung.


🧰 Voraussetzungen

Dieser Leitfaden basiert auf folgender Umgebung:

  • Server: Ubuntu 22.04 LTS (oder ähnlich)\
  • Webserver: Nginx 1.24+ oder Apache 2.4.58+\
  • Tools: openssl, curl, testssl.sh\
  • Zertifizierungsstelle (CA): Let's Encrypt (kostenlos) oder kommerzielle CA

Erforderliche Grundkenntnisse: - Basis-Linux-Befehle (CLI) - SSL-Verzeichnisstruktur (/etc/letsencrypt/live/) - Grundverständnis von Nginx-/Apache-Konfigurationen


🧩 1. Wählen Sie die richtige TLS-Version

Heute gelten TLS 1.2 und TLS 1.3 als sicher.\ Wenn möglich, aktivieren Sie nur TLS 1.3.\ Ältere Versionen (TLS 1.0, 1.1, SSLv3) sind unsicher und sollten deaktiviert werden.

🔧 Beispiel (Nginx)

ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers on;

💡 Tipp:\ TLS 1.3 verwendet automatisch sichere Cipher Suites, daher muss keine manuelle Liste angegeben werden, außer wenn TLS 1.2 aktiviert bleibt.

🔒 Beispiel (Apache)

SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder on

🧠 2. Sichere Cipher Suites verwenden

Cipher Suites bestimmen, wie Daten verschlüsselt werden.\ Veraltete oder schwache Algorithmen (z. B. RC4, DES, 3DES) sollten niemals verwendet werden.

Empfohlene Cipher-Liste (für TLS 1.2)

ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:
             ECDHE-RSA-AES256-GCM-SHA384:
             ECDHE-ECDSA-CHACHA20-POLY1305:
             ECDHE-RSA-CHACHA20-POLY1305:
             ECDHE-ECDSA-AES128-GCM-SHA256:
             ECDHE-RSA-AES128-GCM-SHA256';

Diese Liste: - Unterstützt Perfect Forward Secrecy (PFS)\

  • Verwendet moderne Algorithmen wie AES-GCM und CHACHA20\
  • Nutzt sichere Schlüsselaustauschverfahren (ECDHE)

🧩 Hinweis:\ PFS verhindert, dass vergangene Sitzungen entschlüsselt werden, selbst wenn ein zukünftiger Schlüssel kompromittiert wird.


🧱 3. Vollständige Zertifikatskette bereitstellen

Browser müssen die vollständige Zertifikatskette erhalten, einschließlich Zwischenzertifikaten.\ Fehlende Zwischenzertifikate führen zu Warnungen oder schlechteren SSL-Bewertungen.

Beispiel (Nginx)

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

Beispiel (Apache)

SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

💡 Let's Encrypt liefert automatisch eine fullchain.pem, die Haupt- und Zwischenzertifikate enthält.


🧭 4. HSTS aktivieren (HTTP Strict Transport Security)

HSTS erzwingt, dass Browser ausschließlich HTTPS verwenden -- ein effektiver Schutz gegen SSL-Stripping-Angriffe.

Beispiel (Nginx)

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

Diese Direktive: - Erzwingt HTTPS für 1 Jahr\

  • Gilt für alle Subdomains\
  • Ermöglicht Preload-Eintrag in Browsern

Status prüfen:\ 👉


🔁 5. OCSP Stapling aktivieren

OCSP Stapling beschleunigt die Zertifikatsprüfung, indem der Server die gültige OCSP-Antwort der CA zwischenspeichert.

Beispiel (Nginx)

ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 8.8.8.8 valid=300s;
resolver_timeout 5s;

⚙️ Ohne Stapling fragt jeder Client direkt bei der CA an -- langsamer und weniger datenschutzfreundlich.


🔐 6. Perfect Forward Secrecy (PFS)

PFS stellt sicher, dass die Kompromittierung eines Schlüssels keine alten Sitzungen offenlegt.

Test

openssl s_client -connect example.com:443 -tls1_2 | grep "Cipher"

Wenn ECDHE oder DHE erscheint, ist PFS aktiv.


🔄 7. Automatische Zertifikatserneuerung

Manuelles Erneuern ist fehleranfällig.\ Let's Encrypt unterstützt automatische Erneuerung per cron oder systemd.

Cron-Beispiel

sudo crontab -e

Fügen Sie hinzu:

0 3 * * * /usr/bin/certbot renew --quiet --post-hook "systemctl reload nginx"

🧠 Testmodus:

sudo certbot renew --dry-run

🧪 8. SSL-Konfiguration testen

1️⃣ SSL Labs Test

👉

Domain eingeben → Analyse starten → Bewertung (A+ empfohlen).

2️⃣ testssl.sh

git clone https://github.com/drwetter/testssl.sh.git
cd testssl.sh
./testssl.sh https://example.com

Das Tool überprüft: - Protokollunterstützung\

  • Cipher-Stärke\
  • HSTS-/OCSP-Konfiguration

📋 9. Leistungsoptimierung

TLS muss Ihre Website nicht verlangsamen.

Empfehlungen: - Aktivieren Sie HTTP/2 und HTTP/3 (QUIC)\

  • Verwenden Sie TLS 1.3 0-RTT Session Resumption\
  • Nutzen Sie ECC (P-256) Zertifikate für schnellere Handshakes\
  • Caching & Reverse Proxy (Cloudflare, Nginx Proxy Manager)

HTTP/2 aktivieren

listen 443 ssl http2;

⚡ Multiplexing erlaubt mehrere Anfragen pro Verbindung -- schnellere Ladezeiten.


🧱 10. Sichere Weiterleitungen

HTTP→HTTPS sollte in einer klaren Regel erfolgen.

Beispiel (Nginx)

server {
  listen 80;
  server_name example.com www.example.com;
  return 301 https://$host$request_uri;
}

💡 301 = permanente Weiterleitung, verbessert SEO und Caching.


🧰 11. Sicherheits-Header hinzufügen

Ergänzen Sie Ihre SSL-Konfiguration durch Browser-Header:

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin";
add_header Permissions-Policy "geolocation=(), microphone=()";
add_header Content-Security-Policy "default-src 'self';";

Diese schützen vor: - Clickjacking\

  • MIME-Sniffing\
  • Cross-Site-Tracking

🧮 12. Zertifikatstypen & Einsatzzwecke


Typ Verwendung Beschreibung


DV (Domain Blogs, persönliche Websites Schnell, automatisch Validation)

OV Firmenwebsites Enthält Identitätsprüfung (Organization
Validation)

EV (Extended Finanzen, E-Commerce Strenge Verifizierung Validation)

Wildcard *.example.com Gilt für alle Subdomains

SAN (Subject Multi-Domain Ein Zertifikat für mehrere Alt Name) Domains

🔍 Empfehlung:\ OV/EV für Unternehmen -- DV (Let's Encrypt) für Automatisierung und Schnelligkeit.


🔎 13. Protokollierung & Überwachung

SSL-Fehler laufend prüfen:

tail -f /var/log/nginx/error.log | grep ssl

Erneuerungs-Logs:

sudo cat /var/log/letsencrypt/letsencrypt.log

Mit Prometheus + Grafana Zertifikatslaufzeiten überwachen.


🧩 14. Vollständige Nginx-Konfiguration

server {
    listen 80;
    server_name example.com www.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_protocols TLSv1.3 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:
                 ECDHE-RSA-AES256-GCM-SHA384:
                 ECDHE-ECDSA-CHACHA20-POLY1305:
                 ECDHE-RSA-CHACHA20-POLY1305:
                 ECDHE-ECDSA-AES128-GCM-SHA256:
                 ECDHE-RSA-AES128-GCM-SHA256';

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

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 1.1.1.1 8.8.8.8 valid=300s;
    resolver_timeout 5s;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    add_header Referrer-Policy "strict-origin";
    add_header Content-Security-Policy "default-src 'self';";

    root /var/www/html;
    index index.html index.php;
}

🧭 Fazit

Eine korrekt konfigurierte SSL/TLS-Umgebung schützt nicht nur Daten, sondern stärkt auch Vertrauen, SEO und Systemstabilität.

Dieser Leitfaden zeigte: - TLS 1.3 und moderne Cipher\

  • HSTS, OCSP und PFS\
  • Automatisierte Erneuerung und Tests

Ihr System erreicht jetzt A+-Sicherheitsniveau -- modern, schnell und zuverlässig.


📚 Weiterführende Ressourcen

Zurück zur Artikelseite