Einen Webserver mit SSL zu konfigurieren ist nicht sehr schwer – ihn „richtig“ zu konfigurieren hingegen schon eher.
Doch auch wenn sich bei perfekt justiertem Server die Sicherheit zu entscheidenden Teilen auf der Clientseite abspielt, so wird es dem ehrgeizigen Administrator keine Ruhe lassen, bis der Benchmark A+ erreicht ist 🙂
Es gibt hier mehrere Fallstricke angefangen von suboptimalen Zertifikatseigenschaften, fehlenden Zertifikaten, Fehlkonfigurationen und dem Problem des Verhältnisses zwischen Kompatibilität und Sicherheit.
Das bedeutet: Testen, Fehler finden, umkonfigurieren, erneut testen…
So kann ein A+ erreicht werden:
im httpd-ssl.conf:
SSLCipherSuite EECDH+AESGCM+AES256:EECDH+AES256:EDH+AES256 SSLProtocol -ALL -SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 SSLHonorCipherOrder on SSLStrictSNIVHostCheck Off SSLCompression off SSLStaplingCache shmcb:/tmp/irgendwas(128000) SSLSessionCache shmcb:/tmp/irgendwasanderes(512000) SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
im jeweiligen virtual host:
<VirtualHost 144.76.161.140:443> SSLCertificateFile /pfad/www.valki.com.crt SSLCertificateKeyFile /pfad/www.valki.com.key SSLCertificateChainFile /pfad/sub.class1.server.ca.pem Header add Strict-Transport-Security "max-age=15768000" ...
Mit dieser Config kommt man derzeit auf ein A+ bei „angemessener“ Kompatibilität – dh. es wird bei den unterstützten Protokollen eine Abdeckung von 95% erreicht. Schließt man noch TLSv1 aus, so erreicht man 2% mehr und kommt somit auf 97% – aber es sind derzeit einfach noch zu viele Browser unterwegs, die dieses Protokoll benötigen! Siehe dazu die Screenshots rechts!
openssl:
Ein wichtiges Kriterium für TLS 1.2 ist die richtige openssl Library… – unter Version 1 wird dies noch nicht unterstützt, also wäre ein Upgrade auf eine aktuellere Version stark zu empfehlen!
Es reicht im Falle nicht aus, lediglich das Paket zu installieren – man sollte apache auch mitteilen, dass er diese Version bitte auch verwendeten soll – und nicht jene die mit dem Basissystem mitgekommen ist. Für FreeBSD „WITH_OPENSSL_PORT=yes“in die /etc/make.conf und anschliessend apache24 aus den Ports kompilieren (make install clean). Wegen des neuen Paketmanagers pkg apache24 danach locken (pkg lock apache24) – damit kein Binaryupdate die openssl Library beim nächsten Update eliminiert!
Weitere Tips:
- kostenloses SSL Zertifikat für 1 Jahr gibt es hier: https://www.startssl.com/
- Testen kann man hier: https://www.ssllabs.com/ssltest
- Certificate Chain issues
- missing bedeutet, dass das (oder mehrere?) intermediate Zertifikat fehlt. Einfach die Zertifikatskette nach oben hin durchsuchen!
- anchor bedeutet, dass die Reihenfolge im intermediate Zertifikats-File nicht stimmt
- weak… naja SHA1 sollte man nach Möglichkeit nicht mehr verwenden!
Schreibe einen Kommentar