SSL macht irre

Okay, diese ganze Zertifikat- und Verschlüsselungsarie auf einem Webserver ist wirklich eine Wissenschaft für sich, doch was ich mir hier die letzten Tage angetan habe schreit einfach nach einem neuen Blog-Eintrag.

Ursprünglich hatte ich meine Webseite(n) mit den Zertifikaten von StartSSL versorgt, da diese ihre einfachen Zertifikate eigentlich immer recht zuverlässig und vor allem kostenfrei angeboten hatten. Nun hatten sich aber Mozilla, google und Apple entschieden dieser CA nicht mehr vollumfänglich zu vertrauen und somit ging der Wahnsinn hier los …

Als erster Schritt stand die Wahl einer neuen CA an, welche mich auch gleichzeitig nicht komplett in die Armut treibt. Die Entscheidung fiel dann recht schnell auf die Kollegen von letsencrypt, auch wenn ich hier nicht gerade allzu begeistert vom Verfahren der Zertifikatsausstellung bin – das ist aber ein anderes Thema, vielleicht tippe ich hierzu auch noch ein paar Zeilen, mal sehen 🙂

Den Webserver also mit den nötigen Paketen versorgt, die bisherigen Zertifikate gekillt und die Neuen ausgestellt. Soweit so gut, bisher klappte alles ja auch bestens und es waren nur wenige Stunden vergangen. Die Webseiten wurden sauber angezeigt, die diversen ( aktuellen ) Browser kamen mit TLS1.2 klar und somit gab es eigentlich nur noch einen letzten Schritt zu tun … finale Validierung, so dachte ich zumindest.

Ab auf SSLLabs, parallel auch noch bei einem kleinen Crypt-Checker die Webseiten prüfen lassen und schon war es vorbei mit der Freude nach „alles klappt doch bestens“. Falsche Schlüssellänge, SNI aktiv, fehlerhafter Cert-Alias und so weiter. Beste Voraussetzungen also die Nächte damit zu verbringen, alles wieder gerade zu biegen. An dieser Stelle als Hinweis – mein bisheriger Artikel zu diesem Thema gilt ab sofort somit als überholt respektive veraltet 🙂

Zuerst also einmal die Apache Konfiguration gerade gezogen, denn hier waren die Alias-Settings der einzelnen vHosts nicht richtig gesetzt. Nun ist das alles so wie es sein soll:


ServerName meinedomain.tld
ServerAlias meinalias1.meinedomain.tld
ServerAlias meinalias2.meinedomain.tld
RewriteEngine On
RewriteRule (.*) https://meinedomain.tld [R=301,L]

Anschliessend kam die SNI-Problematik, welche sich aber sehr einfach beheben lies. Die oben benannten Alias-Settings einhalten und dann via letsencrypt auf der Kommandozeile für alle Domains auf einen Schlag die Zertifikate anfordern – auf keinen Fall automatisch erledigen lassen, das gibt sonst ein Durcheinander in der Domainreihenfolge ( Diverse Tools hatten bei mir damit so ihre Probleme ! ). Ach ja, nicht vergessen die Schlüssellänge manuell auf 4096-Bit zu setzen, Standard sind hier „nur“ 2048-Bit:


letsencrypt -d meinedomain.tld,meinalias1.meinedomain.tld,meinalias1.meinedomain.tld --rsa-key-size 4096 --apache certonly

Hieraus werden dann durch den letsencrypt-Bot die relevanten Zertifikatfiles erzeugt und unter

/etc/letsencrypt/archive/meinedomain.tld

abgelegt. Diese werden dann nach dem ( aus meinem alten Artikel ) bekannten Muster eingebunden, doch dieses Mal eben für jeden vHost die gleichen Einträge, sprich Zertifikate – ihr erinnert Euch, kein SNI 🙂


SSLEngine on
SSLCertificateFile /etc/letsencrypt/archive/meinedomain.tld/cert1.pem
SSLCertificateKeyFile /etc/letsencrypt/archive/meinedomain.tld/privkey1.pem
SSLCertificateChainFile /etc/letsencrypt/archive/meinedomain.tld/chain1.pem
SSLCACertificateFile /etc/letsencrypt/archive/meinedomain.tld/fullchain1.pem

Das finale Review der SSL Konfiguration des Apachen ( mindestens Version 2.2.x und openssl 1.0.2 ) brachte nur eine kleine Anpassung hervor, weswegen hier nach wie vor bei mir folgendes gesetzt ist:


SSLOpenSSLConfCmd Options -SessionTicket
SSLStrictSNIVHostCheck Off
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression off
SSLHonorCipherOrder on
SSLCipherSuite 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:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256

So, das sollte es nun aber gewesen sein – ein A+ Rating bei SSLLabs reicht für den Anfang aus und von daher bin ich erst einmal wieder zufrieden. Euch viel Spass beim Umbauen und Konfigurieren. Falls Verbesserungsvorschläge aufkommen, bitte immer her damit, gerade bei diesem Thema lerne ich gerne immer wieder Neues dazu 🙂

Wie wäre es damit ...

4 Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*