Apache24 mit SSL auf Rating A+ konfigurieren

ein A+

ein A+

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"
...
ohne TLSv1

ohne TLSv1

mit TLSv1

mit TLSv1

 

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!

Leave A Reply

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.