Einführung / Konfiguration des FirstSpirit-Servers / Konfigurationsdateien (FirstSpirit-Server) / FirstSpirit-Server (fs-server.conf) / SSL Parameters
Bereich: SSL Parameters
################
# SSL parameters
################
# List of enabled protocols (comma separated). "DEFAULT" means use java defaults.
# Recommended value for Java 7 or greater: TLSv1.2
# For Java 6 only TLSv1 is supported.
# http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#jssenames
#
# fs.ssl.protocols=DEFAULT
fs.ssl.protocols=TLSv1.2
# List of enabled cipher suites (comma separated). "DEFAULT" means use java defaults (recommended).
# "ANON" means use anonymous internal mode without any key authentication (not recommended).
# http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites
#
# fs.ssl.cipherSuites=DEFAULT
fs.ssl.cipherSuites=ANON
# Client authentication parameters
# If client authentication is needed, a keystore on client side must be configured:
# -Dfs.ssl.keyStore=pathToKeystore -Dfs.ssl.keyStorePassword=123456 or
# -Djavax.net.ssl.keyStore=pathToKeystore -Djavax.net.ssl.keyStorePassword=123456
fs.ssl.wantClientAuth=false
fs.ssl.needClientAuth=false
# Jetty style OBF password obfuscation is supported for key and truststore passwords,
# if the FirstSpirit specific parameters are used.
# Keystore
fs.ssl.keyStore=
fs.ssl.keyStorePassword=
fs.ssl.keyManagerPassword=
# Truststore
fs.ssl.trustStore=
fs.ssl.trustStorePassword=
Dieser Bereich stellt Parameter zur SSL/TLS-Verschlüsselung der internen Kommunikation zwischen FirstSpirit-Server, FirstSpirit-Clusterknoten, dem FirstSpirit SiteArchitect und den FirstSpirit-Webanwendungen bereit. Die interne Kommunikation wird standardmäßig ohne Client-Authentifizierung und Zertifikate verschlüsselt. Diese Aspekte können aber über die unten erläuterten Verschlüsselungsparameter individuell konfiguriert werden, um die höchstmögliche Sicherheit zu gewährleisten.
Weiterführende Informationen zum Sicherheitskonzept „Verschlüsselung der internen Kommunikation“ siehe Parametrisierung der Verschlüsselung.
In der Datei fs-server.conf können folgende Parameter konfiguriert werden:
fs.ssl.protocols
Über diesen Parameter kann eine Liste von gültigen Protokollversionen für die interne Kommunikation konfiguriert werden. Die Verwendung von TLSv1.2 ist standardmäßig aktiviert. Die hier konfigurierbaren Werte sind abhängig vom verwendeten JDK. Wird der Wert DEFAULT übergeben, wird automatisch die Standard-Protokollversion des jeweiligen JREs verwendet.
fs.ssl.cipherSuites
Über diesen Parameter kann eine Liste von gültigen Cipher Suites (standardisierte Sammlung kryptographischer Algorithmen) konfiguriert werden. Mehrere Einträge werden Komma-separiert übergeben. Standardmäßig wird ein anonymer TLS-Modus benutzt, da nicht sichergestellt werden kann, dass alle FirstSpirit-Installationen über einen Zertifikatspeicher verfügen.
Empfohlene Konfiguration: Um eine gesicherte Verschlüsselung zu gewährleisten, sollte zunächst ein vertrauenswürdiges Zertifikat (über einen Zertifikatspeicher) installiert und anschließend an dieser Stelle der Wert DEFAULT konfiguriert werden. (Vorgehen analog zu Konfiguration des HTTPS-Servers.)
fs.ssl.keyStore
Über diesen Parameter wird der Pfad zum Java Key Store (JKS) angegeben.
fs.ssl.keyStorePassword
Über diesen Parameter wird das Passwort zum Java Key Store (JKS) angegeben.
fs.ssl.keyManagerPassword
Der JKS enthält mehrere private Schlüssel, die ebenso wie der Key Store selbst über ein Passwort verfügen können. Über diesen Parameter kann das Passwort des privaten Schlüssels konfiguriert werden. In den meisten Fällen besitzt der Schlüssel kein gesondertes Passwort, so dass eine Konfiguration des Parameters fs.ssl.keyStorePassword hier ausreichend ist.
fs.ssl.trustStore
Über diesen Parameter wird der Pfad zum Java Trust Store angegeben.
fs.ssl.trustStorePassword
Über diesen Parameter wird das Passwort zum Java Trust Store angegeben.
fs.ssl.wantClientAuth
Die Verwendung einer Client-SSL-Authentifizierung ist standardmäßig deaktiviert (Standardwert: false). Um die Client-SSL-Authentifizierung für die interne Kommunikation per TLS zu aktivieren, muss dieser Parameter auf true gesetzt werden. Wird hier der Wert true übergeben, wird ein gültiges Zertifikat für die Client-SSL-Authentifizierung angefragt, es ist aber nicht zwingend notwendig (im Gegensatz zum Parameter fs.ssl.needClientAuth).
fs.ssl.needClientAuth
Die Verwendung einer Client-SSL-Authentifizierung ist standardmäßig deaktiviert (Standardwert: false). Um die Client-SSL-Authentifizierung für die interne Kommunikation per TLS zu aktivieren, muss dieser Parameter auf true gesetzt werden. In diesem Fall ist ein gültiges Zertifikat für eine erfolgreiche Client-SSL-Authentifizierung erforderlich.
Beispiel für die Konfiguration einer verschlüsselten Verbindung:
fs.ssl.needClientAuth=true
fs.ssl.cipherSuites=DEFAULT
fs.ssl.keyStore=/home/server_cert.jks
fs.ssl.keyStorePassword=q1w2e3r4t
- Für die FirstSpirit-Webanwendungen können die Verschlüsselungsparameter zentral im Application-Server konfiguriert werden (als Environment-Variable oder als -D-Property, siehe Konfiguration in Webapplikationen und Servlets).
- Für Clusterknoten erfolgt die Konfiguration ebenfalls über die Datei fs-server.conf (siehe Konfiguration für Cluster-Knoten).
- Und für den FirstSpirit SiteArchitect über die Verbindungseinstellungen (siehe Konfiguration für den FirstSpirit-SiteArchitect).
Globale Konfiguration: Alternativ zu den FirstSpirit-Keystore-Parametern können auch die Java Keystore-Parameter benutzt werden. Die FirstSpirit-Parameter dürfen dann nicht benutzt werden. Außerdem wirken sich die Java-Parameter auf alle SSL-Instanzen in der Java VM aus (sind also nicht auf FirstSpirit begrenzt):
fs.ssl.needClientAuth=true
fs.ssl.cipherSuites=DEFAULT
javax.net.ssl.keyStore=/home/server_cert.jks
javax.net.ssl.keyStorePassword=q1w2e3r4t
Siehe dazu auch:
http://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#Customization