Skip to content

Mozilla SSL Server Konfigurator - Die richtigen TLS/SSL Einstellungen für Apache, Nginx oder HAProxy automatisch generieren

Die letzten Wochen ging es teilweise um die Analyse von SSL Verbindungen, heute soll es mal wieder um die dazugehörigen Einstellungen gehen.
Ich hatte in der Vergangenheit zwar schon Artikel zu SSL Einstellungen für Nginx, Apache oder Postfix geschrieben. Dennoch will ich mal auf den Mozilla SSL Konfiguration Generator hinweisen.
Das Webtool bietet zusammen mit dem ausführlichen Wiki Artikel über Server Side TLS Security  genau die richtige Kombination, um Webserver mit SSL zu konfigurieren.

mozilla-wiki
SSL Einstellungen per Klick erzeugen

Der webbasierte Mozilla SSL Konfigurator unterstützt neben den am weitesten verbreiteten Servern Apache und Nginx auch HA Proxy. 
Ich persönlich vermisse eine Option für Postfix, da es sich dabei aber um keinen reinen Webserver handelt, ist das auch nachvollziehbar.

Das Tool stellt neben verschiedenen Server und SSL Varianten drei Auswahlmöglichkeiten in puncto Sicherheit zur Verfügung (modern, intermediate und old).
Praktischerweise wird bei jedem Modus auch die Unterstützung für Browser oder Systeme eingeblendet. So weiß jeder Anwender direkt, ob die enthaltenen CypherSuites für das eigene Projekt nützlich sind oder nicht.
Welche SSLCipherSuites genau in der jeweiligen Einstellung verwendet werden, lässt sich in dem oben erwähnten Mozilla Wiki Artikel nachlesen.

ssl-config-generator

Leider müssen einzelne Server Versionen von Hand eingegeben werden, der Konfigurator erkennt diese aber ohne Probleme. 
Wie Stichproben gezeigt haben, nimmt das Tool OCSP Stapling automatisch aus der Config, wenn ein Wechsel von Apache 2.4 zu 2.2 erfolgt. (Diese Funktion wird erst seit 2.3 unterstützt).

Wie der Name des Tools vermuten lässt, wird nur eineKonfiguration generiert, diese muss in die geweilige ".conf" Datei auf einem Server kopiert werden.

Fazit

Nicht nur Administratoren finden mit dem Tool eine praktische Hilfe, wenn es um die Konfiguration von TLS auf einem Server geht. 
Auch der Heimanwender, kann sich mit Hilfe des dazugehörigen Wiki Artikel das nötige Wissen zu TLS/SSL aneignen und mit dem SSL Konfigurator schnell und einfach umsetzen. 

Lösung Java 8 Fehler - Certificate has been revoked - Zertifikat wurde entzogen

Im April läuft die Unterstützung für Java 7 aus, somit wird es langsam aber sicher Zeit auf Java 8 umzusteigen. Die neue Version 8 bringt bessere Sicherheitsmechanismen mit, welche bei Anwendungen, die auf HTTPS und somit auf Zertifikate setzen zu Fehlern führen können. Einer davon ist die Zurückweisung des Zertifikats:

 java.security.cert.CertificateRevokedException: Certificate has been revoked, reason: SUPERSEDED, revocation date: XXXXX CET 2014, authority: CN=TC TrustCenter Class 2 CA II, OU=TC TrustCenter Class 2 CA, O=TC TrustCenter GmbH, C=DE, extension OIDs: [2.5.XX.21]

at com.sun.deploy.security.RevocationChecker.checkApprovedCRLs(Unknown Source)

at com.sun.deploy.security.RevocationChecker.checkCRLs(Unknown Source)

at com.sun.deploy.security.RevocationChecker.check(Unknown Source)

at com.sun.deploy.security.TrustDecider.checkRevocationStatus(Unknown Source)

at com.sun.deploy.security.TrustDecider.getValidationState(Unknown Source)

at com.sun.deploy.security.TrustDecider.validateChain(Unknown Source)

at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)

at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source)

........

Java8-AnwendungzurSicherheitblockiert

Erklärung 

CRL 

Dabei handelt es sich um eine Zertifikatsperrliste (Certificate Revoke List -->CRL), diese wird von einer Zertifizierungsstelle geführt und enthält die Seriennummer ungültiger Zertifikate. Diese sind mit einem Zeitstempel versehen und einer Signatur geschützt. Voraussetzung für eine Prüfung durch diesen Sicherheitsmechanismus ist eine aktive Internetverbindung.

In diesem Beispiel trat dieser Fehler auf.

OCSP

Ein weiterer Schutz der unter Java 8 aktiv ist nennt sich Online Certificate Status Protocol. Dabei handelt es sich um ein Netzwerkprotokoll, das ebenfalls bei einem CA Dienst (OCSP-Responder) nach der Gültigkeit eines Zertifikats fragt. 

Sicherheitsprüfungen für Zertifikate in Java 8 ausschalten

Bei selbst signierten oder anderweitig verwendeten Zertifikaten können diese Prüfungen ausgeschaltet, bzw. eingeschränkt werden. Denn bei einer Test- oder Intranetanwendung ist es nicht immer sinnvoll die Gültigkeit bei einer CA zu überprüfen.

Darum lassen sich in den Java Einstellungen ("Systemsteuerung/Java/Erweitert") CPL und OCSP deaktivieren.

java8-sicherheit

Bei dieser Einstellung wird die Prüfung nicht komplett deaktiviert, sondern auf Zertifikate des Anbieters, also des Softwareherstellers beschränkt. Das heißt, bei selbst signierten Zertifikaten dürfte nun kein Fehler seitens Java angezeigt werden, wenn die gewünschte URL auf der Whitelist ist oder dem eigenen Zertifikat vertraut wird.

Natürlich lassen sich CRL und OCSP auch komplett deaktivieren. Die Einstellungen sind dann wie folgt.

java8-sicherheit-zertifikate

P.S. Im selben Menü könnt im gleichen Zug weiter unten die Protokolle SSL 3.0 und TLS 1.0 deaktivieren.