SSL/TLS-Konfiguration prüfen und aktualisieren: Schritt für Schritt

Ihr Server hat ein gültiges Zertifikat. Das Schloss im Browser ist grün. Trotzdem kann Ihre SSL TLS Konfiguration ein Sicherheitsproblem sein. Denn das Zertifikat sagt nur, wer Sie sind. Wie gut die Verbindung verschlüsselt ist, entscheidet die Konfiguration dahinter. Und die hat auf vielen Legacy-Servern seit Jahren niemand angefasst.
TLS steht für Transport Layer Security. Es ist das Protokoll, das HTTPS überhaupt erst sicher macht. SSL ist der ältere Name, den viele noch verwenden. Die Versionen TLS 1.0 und 1.1 sind seit 2021 offiziell als unsicher eingestuft. Chrome, Firefox, Safari und Edge haben sie schon 2020 abgeschaltet. Auf Servern, die 2015 eingerichtet wurden, laufen sie trotzdem oft weiter.
Dieser Artikel zeigt Ihnen, wie Sie den Zustand Ihrer Konfiguration in zehn Minuten prüfen. Danach erklären wir, was Sie abschalten sollten. Und wie Sie das auf Apache und Nginx umsetzen.
Warum alte TLS-Versionen ein Problem sind
Ein Protokoll wie TLS 1.0 ist kein Einzelteil. Es ist ein Bündel aus Verschlüsselungsverfahren, Handshake-Regeln und Prüfmechanismen. Für TLS 1.0 und 1.1 wurden über die Jahre mehrere Angriffe veröffentlicht. BEAST, POODLE und ähnliche Verfahren erlauben es, verschlüsselte Daten unter bestimmten Bedingungen mitzulesen.
Solange Ihr Server diese Versionen anbietet, kann ein Angreifer die Verbindung darauf herunterhandeln. Das nennt sich Downgrade-Angriff. Der Browser des Kunden würde TLS 1.3 nutzen. Der Angreifer zwischen Kunde und Server sorgt dafür, dass beide sich auf TLS 1.0 einigen. Dann greifen die bekannten Schwächen.
Neben den Protokollen gibt es die Cipher-Suites. Das sind die konkreten Rechenverfahren, mit denen die Daten verschlüsselt werden. Auch hier gilt: Was 2012 sicher war, ist es heute nicht mehr. RC4, 3DES und alle Suiten ohne Forward Secrecy gehören abgeschaltet. Forward Secrecy bedeutet, dass ein später gestohlener Serverschlüssel alte Mitschnitte nicht entschlüsseln kann.
Was das rechtlich und geschäftlich bedeutet, steht im Artikel über veraltetes SSL/TLS als Risiko. Die Kurzfassung: Die DSGVO verlangt Verschlüsselung nach Stand der Technik. TLS 1.0 ist das nicht. Zahlungsdienstleister lehnen alte Protokolle seit PCI DSS 3.2 ab. Und Sicherheits-Scanner Ihrer Kunden melden alte Konfigurationen als Befund.
Schritt 1: Den aktuellen Stand prüfen
Bevor Sie etwas ändern, brauchen Sie ein klares Bild. Dafür gibt es zwei Wege.
Der einfachste ist der SSL Server Test von Qualys SSL Labs. Sie geben Ihre Domain ein und warten zwei Minuten. Das Ergebnis ist eine Note von A+ bis F. Darunter sehen Sie, welche Protokolle und Cipher-Suites der Server anbietet. Und ob das Zertifikat sauber ist. Eine Note unter B ist ein Handlungssignal. Ein T oder F bedeutet: Das Zertifikat wird von Browsern nicht vertraut oder ist abgelaufen.
Der zweite Weg läuft auf der Kommandozeile. Mit openssl s_client -connect ihre-domain.de:443 -tls1 testen Sie, ob der Server noch TLS 1.0 akzeptiert. Kommt eine Verbindung zustande, ist das Protokoll aktiv. Dasselbe funktioniert mit -tls1_1. Wer es gründlicher mag, nutzt testssl.sh. Das Skript prüft alle Protokolle, alle Cipher-Suites und die meisten bekannten Schwachstellen. Es läuft auf jedem Linux-Rechner ohne Installation.
Notieren Sie sich das Ergebnis. Dann haben Sie nachher einen Vorher-Nachher-Vergleich.
Ein häufiger Fund bei dieser Prüfung: Die Website selbst ist sauber. Aber der Mailserver oder eine vergessene Admin-Oberfläche läuft noch mit TLS 1.0. Prüfen Sie deshalb nicht nur die Hauptdomain.
Schritt 2: Veraltete Protokolle deaktivieren
Nach der Prüfung folgt die eigentliche Arbeit. Ziel ist: Nur TLS 1.2 und TLS 1.3 bleiben aktiv. Alles darunter wird abgeschaltet.
Apache
Suchen Sie in Ihrer SSL-Konfiguration nach SSLProtocol. Auf vielen alten Servern steht dort noch SSLProtocol all -SSLv2 -SSLv3. Das lässt TLS 1.0 und 1.1 offen. Ersetzen Sie die Zeile durch:
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
SSLSessionTickets off
Danach apachectl configtest ausführen und den Dienst neu laden. Die Direktive +TLSv1.3 setzt Apache 2.4.36 oder neuer voraus. Zusätzlich braucht der Server OpenSSL 1.1.1 oder neuer. Ältere Versionen ignorieren die Direktive oder brechen beim Start ab.
Nginx
Bei Nginx heißt die Direktive ssl_protocols. Tragen Sie ein:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
Mit nginx -t prüfen und dann nginx -s reload ausführen. Auch hier gilt: TLS 1.3 funktioniert erst mit OpenSSL 1.1.1. Auf einem Debian 8 oder CentOS 6 fehlt diese Version. Dann bleibt vorerst nur TLS 1.2 und das Betriebssystem gehört auf die Update-Liste.
Genau an dieser Stelle wird aus einer Konfigurationsfrage oft ein größeres Thema. Wenn OpenSSL zu alt ist, hilft keine Konfigurationszeile. Dann steht ein Update des Betriebssystems an. Wie Sie das auf Legacy-Servern planen, zeigt unser Artikel zum Security Hardening für Apache und Nginx.
Schritt 3: Cipher-Suites modernisieren
Die Protokolle allein reichen nicht. Auch unter TLS 1.2 kann der Server schwache Verfahren anbieten. Die Cipher-Liste bestimmt, welche davon erlaubt sind.
Eine erprobte Liste liefert der SSL Configuration Generator von Mozilla. Sie wählen Ihren Webserver und Ihre OpenSSL-Version aus. Das Werkzeug erzeugt eine fertige Konfiguration in drei Stufen. Die Stufe "Intermediate" ist für die meisten Unternehmen richtig. Sie unterstützt alle Browser der letzten acht Jahre und schließt trotzdem alle bekannten Schwächen aus.
Für Apache sieht die Zeile dann in etwa so aus:
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305
Alle Einträge beginnen mit ECDHE. Das ist das Verfahren, das Forward Secrecy sicherstellt. Alte Einträge wie AES128-SHA oder DES-CBC3-SHA haben in dieser Liste nichts mehr verloren.
Übernehmen Sie die Liste nicht blind. Greift ein Kunde mit einem Kassensystem von 2013 auf Ihre Schnittstelle zu? Dann kann die Verbindung nach der Umstellung scheitern. Prüfen Sie deshalb vor dem Umschalten Ihre Zugriffslogs. Der Qualys-Test zeigt außerdem eine Simulation für alte Clients. Dort sehen Sie, wer nach der Umstellung noch verbinden kann.
Schritt 4: Zertifikat und Zusatzeinstellungen kontrollieren
Bei der Gelegenheit lohnt ein Blick auf das Zertifikat selbst. Drei Punkte sind dabei wichtig.
Die Signatur sollte SHA-256 verwenden. Zertifikate mit SHA-1 akzeptiert kein moderner Browser mehr. Der Schlüssel sollte mindestens 2048 Bit lang sein. Und die Zertifikatskette muss vollständig ausgeliefert werden. Fehlt das Zwischenzertifikat, meldet der Qualys-Test "chain issues". Desktop-Browser überdecken das oft, alte Android-Geräte und Java-Clients nicht.
Wer noch Zertifikate von Hand verlängert, sollte auf Let's Encrypt umsteigen. Das Zertifikat erneuert sich dann automatisch alle 90 Tage. Die Einrichtung auf einer älteren Website beschreibt der Artikel HTTPS und SSL für alte Websites.
Zwei Zusatzeinstellungen runden die Umstellung ab. Mit HSTS teilen Sie Browsern mit, dass Ihre Domain nur per HTTPS erreichbar ist. Der Browser verweigert danach jede unverschlüsselte Verbindung. Und OCSP Stapling beschleunigt die Zertifikatsprüfung, weil der Server den Gültigkeitsnachweis gleich mitliefert. Beides ist in der Mozilla-Konfiguration bereits enthalten.
Schritt 5: Ergebnis prüfen und dokumentieren
Nach dem Neustart des Webservers führen Sie den Qualys-Test erneut aus. Die Note sollte jetzt bei A oder A+ liegen. Der openssl-Test mit -tls1 muss mit einer Fehlermeldung enden. Das ist das gewünschte Ergebnis.
Halten Sie fest, was Sie geändert haben und warum. Ein Eintrag im Wiki oder ein Kommentar in der Konfigurationsdatei reicht. Der nächste Admin, vielleicht Sie selbst in drei Jahren, wird es Ihnen danken. Und setzen Sie eine Erinnerung. TLS 1.2 ist heute sicher. In fünf Jahren sieht das anders aus. Eine jährliche Prüfung mit dem Qualys-Test dauert zwei Minuten und gehört in jeden Wartungsplan.
Sie wollen die Grundlagen verstehen? Unser Überblick zu SSL und TLS erklärt Verschlüsselung ohne Vorwissen.
Fazit: Zehn Minuten Prüfung, eine Stunde Umstellung
Eine veraltete SSL TLS Konfiguration ist eine der Sicherheitslücken, die sich am günstigsten schließen lassen. Prüfung, Umstellung und Kontrolle passen in einen Nachmittag. Voraussetzung ist ein Webserver und eine OpenSSL-Version, die TLS 1.2 und 1.3 beherrschen. Fehlt das, steht vorher ein Betriebssystem-Update an. Auch das ist machbar, braucht aber Planung.
Sie sind sich nicht sicher, was auf Ihrem Server läuft? Oder Sie haben den Qualys-Test gemacht und eine Note bekommen, die Sie nicht einordnen können? Dann sprechen Sie uns an. Wir schauen uns Ihre Server-Konfiguration an und sagen Ihnen ehrlich, wo es hakt. Dann setzen wir die Umstellung um. Als Einzelmaßnahme oder als Teil einer laufenden Software-Wartung. Das Erstgespräch ist kostenlos.


