Sichern des Acrolinx Servers mit HTTPS support.acrolinx.com /hc/de/articles/204753131-sichern-des-acrolinx-servers-mit-https Sichern des Acrolinx Servers mit HTTPS Betrifft Software Version Acrolinx Server 4.5, 4.6, 4.7, 5.0, 5.1 In einer standardmäßigen Installation von Acrolinx ist die Kommunikation zwischen dem Server und der Außenwelt unverschlüsselt. Mit Außenwelt meinen wir Personen, die sich über ein Acrolinx-Plug-in oder einen Webbrowser mit dem Server verbinden. Wenn der Server und die Clients im gleichen Unternehmensnetzwerk ausgeführt werden, ist unverschlüsselte Kommunikation normalerweise unproblematisch. Wenn die Clients allerdings eine Verbindung über das öffentliche Internet herstellen, möchten Sie möglicherweise HTTPS verwenden, den Internetstandard für sichere Kommunikation. HTTPS- Kommunikation stellt sicher, dass Daten und Passwörter während der Übermittlung unlesbar sind. Im Allgemeinen empfehlen wir, immer eine Cipher Whitelist zu konfigurieren und nicht verwendete und unsichere SSL-Protokolle zu deaktivieren. Wir haben die empfohlenen Konfigurationen in den entsprechenden Abschnitten eingefügt. Die Einrichtung von HTTPS und besonders die Erzeugung eines öffentlichen Schlüssels werden am besten von einem Sicherheitsexperten durchgeführt. Welches Zertifikat ist geeignet? Um die Identität und Authentizität des Servers zu bestätigen und eine sichere Verbindung herzustellen, brauchen Sie ein Zertifikat mit einem öffentlichen Schlüssel. Dabei haben Sie zwei Optionen: 1. Sie können Acrolinx Server automatisch ein selbstsigniertes Zertifikat erstellen lassen. Diese Vorgehensweise ist deutlich einfacher als die zweite Option. Allerdings bekommen Benutzer beim Öffnen des Dashboards eine Sicherheitswarnung in ihrem Webbrowser angezeigt, die etwa so aussieht: Außerdem funktionieren selbstsignierte Zertifikate nicht unbedingt mit allen Acrolinx Plug-ins. Die meisten Plug-ins sollten sich erfolgreich an den Server verbinden können, aber es gibt Ausnahmen. Wenn Sie das nicht stört, können Sie den Server mit einem selbstsignierten Zertifikat sichern. Ein selbstsigniertes Zertifikat bietet Ihnen die gleiche Verschlüsselung wie ein Zertifikat, das von einer Zertifizierungsstelle signiert wurde. 2. Sie können Ihr eigenes Zertifikat benutzen. Mit einem eigenen Zitat meinen wir ein Zertifikat, das Sie von einer Zertifizierungsstelle erhalten haben (ein CA-Zertifikat) oder das jemand in Ihrer Organisation für interne Server erstellt hat. Normalerweise müssen Sie ein CA-Zertifikat kaufen und die Konfigurierung mit dem Acrolinx Server ist etwas komplizierter. Andererseits bieten CA-Zertifikate ein Maximum an Vertrauen. Wenn Sie also mit gutem Beispiel vorangehen wollen, sollten Sie Ihr eigenes Zertifikat verwenden. Sichern des Acrolinx Servers mit einem automatisch selbstsignierten Zertifikat Um den Acrolinx Server für HTTPS-Kommunikation zu sichern, müssen Sie das Protokoll und den Port für die sichere Kommunikation definieren. Wenn Sie HTTPS in den Hauptserver- und Sprachserver-Eigenschaften konfigurieren, erstellt der Hauptserver die erforderlichen Zertifikate bei der ersten HTTPS-Verbindung. So konfigurieren Sie die HTTPS-Eigenschaften für den Hauptserver: 1. Öffnen Sie Ihr Overlay der Hauptserver-Eigenschaftendatei und fügen Sie die folgenden Eigenschaften hinzu: 1/6
endpointhost=<server_name> Setzen Sie endpointhost zum Namen des Servers und nicht zur IP-Adresse, also so: endpointhost=acroserver. Zur Verwendung von HTTPS muss der Hauptserver einen DNS- Namen haben, auf den die Clients zugreifen können. Aktualisieren Sie den Wert endpointport, wenn Sie einen anderen Port für die sichere Kommunikation verwenden. Standardmäßig verbinden sich alle Clients und Sprachserver über den Port 8031 mit dem Hauptserver. Wenn Ihre Sicherheitsrichtlinien erfordern, dass eine sichere Kommunikation über einen bestimmten Port wie zum Beispiel 443 verläuft, fügen Sie den zusätzlichen endpointport wie folgt hinzu: endpointport=443 2. Speichern Sie Ihre Änderungen und starten Sie den Hauptserver neu. 3. Wenn Sie besonders sicher gehen möchten, können Sie den Hauptserver und die Sprachserver ebenfalls zur Kommunikation über HTTPS konfigurieren. Das ist nicht notwendig, aber es ist eine zusätzliche Sicherheitsmaßnahme gegen Angriffe aus dem Inneren Ihres Netzwerkes. Die Sicherung der internen Kommunikation ist auch dann sinnvoll, wenn Sprach- und Hauptserver über das Internet erreichbar sind. Wenn Sie die Kommunikation zwischen den Sprachservern und dem Hauptserver sichern, verwenden diese standardmäßig das TLS-Protokoll. Dies ist das aktuellste und sicherste Protokoll. a. Öffnen Sie Ihr Overlay jeder Sprachserver-Eigenschaftendatei. Die Overlays für die Sprachserver-Eigenschaftendatei finden Sie im folgenden Verzeichnis: %ACROLINX_CONFIGURATION_ROOT%\server\bin\ls-<NUMMER>.properties Der Platzhalter <NUMMER> steht für die Nummer des Sprachservers, zum Beispiel ls-01, ls-02 und so weiter. b. Aktualisieren Sie in jeder Datei die Eigenschaften wie im folgenden Beispiel: coreserverendpointurl=https://<host_name>:8031/acrolinx/services/internal/ls?wsdl endpointhost=<host_name> Ersetzen Sie den Platzhalter <HOST_NAME> mit dem Namen des Computers, auf dem der Hauptserver ausgeführt wird. Es ist wichtig, dass Sie den Hostnamen und nicht die IP-Adresse verwenden. Sonst kann es sein, dass die Konfiguration nicht richtig funktioniert. Wenn Ihr Server-Computer zum Beispiel acroserver heiß und Sie den Standardport 8031 verwenden, aktualisieren Sie die Eigenschaften so: coreserverendpointurl=https://acroserver:8031/acrolinx/services/internal/ls?wsdl endpointhost=acroserver c. Speichern Sie Ihre Änderungen und starten Sie den Sprachserver neu. Wenn Sie den Sprachserver neu starten, erstellt dieser automatisch ein Zertifikat und versucht, eine Verbindung zum Hauptserver herzustellen. Der Hauptserver weist diese Verbindung zunächst zurück, weil er das erstellte Zertifikat noch nicht kennt. Aber das ist kein Problem. Führen Sie einfach den nächsten Schritt aus. d. Fügen Sie zu jedem Sprachserver ein vertrauenswürdiges Zertifikat hinzu. Suchen Sie das für den Sprachserver erstellte Zertifikat und kopieren Sie es in das Verzeichnis trusted certificates. Das selbstsignierte Zertifikat wird im folgenden Verzeichnis erstellt: 2/6
%ACROLINX_CONFIGURATION_ROOT%/server/certificates/own Der Name des Zertifikats sieht etwa so aus: CN=acroserver,DC=ls-01,DC=smarttech,DC=com.der Verschieben Sie die Zertifikatsdatei in das folgende Verzeichnis: %ACROLINX_CONFIGURATION_ROOT%/server/certificates/trusted e. Starten Sie den Hauptserver neu. Nun sollte der Hauptserver die sichere Verbindung vom Sprachserver erkennen. Sichern des Acrolinx Servers mit Ihrem eigenen Zertifikat Um den Acrolinx Server für HTTPS-Kommunikation zu sichern, müssen Sie das Protokoll und den Port für die sichere Kommunikation definieren. Außerdem müssen Sie die Keystoreund Truststore-Details definieren. So konfigurieren Sie die HTTPS-Eigenschaften für den Hauptserver: 1. Importieren Sie Ihr Zertifikat in einen Java Keystore. a. Wenn das Zertifikat in der Datei <ZERTIFIKAT_NAME>.crt ist und der Schlüssel in der Datei <SCHLÜSSEL_NAME>.key, müssen Sie die beiden Dateien zunächst zu einer PKCS12-Datei kombinieren. Öffnen Sie eine Kommandozeile und geben Sie den folgenden Befehl ein: openssl pkcs12 -inkey <SCHLÜSSEL_NAME>.key -in <ZERTIFIKAT_NAME>.crt -export -out combined.pkcs12 HINWEIS: Es kann vorkommen, dass einige Browser eine Warnung anzeigen, dass das Zertifikat nicht vertrauenswürdig ist. Kombinieren Sie in diesem Fall alle Zertifikatsdateien, die Sie zusammen mit dem Zertifikat <ZERTIFIKAT_NAME>.crt erhalten haben, in eine neue Datei mit dem Namen <ZERTIFIKAT_NAME>.crt, und führen Sie den Befehl erneut aus. Die PKCS12-Datei enthält jetzt die gesamte Keychain, und das Zertifikat sollte von allen Browsern als vertrauenswürdig eingestuft werden. b. Geben Sie, wenn aufgefordert, das <PASSWORT> ein. c. Kopieren Sie die Datei combined.pkcs12 von dem Ort, an dem sie erstellt wurde, in das bin -Verzeichnis Ihres Servers. Dazu können Sie zum Beispiel einen Befehl eingeben, der etwa so aussieht: copy C:\files\combined.pkcs12 C:\Acrolinx\server\bin d. Importieren Sie die PKCS12-Datei in Ihren Java-Keystore, indem Sie den folgenden Befehl im bin -Verzeichnis Ihres Servers ausführen. Dazu können Sie zunächst Befehle eingeben, die etwa so aussehen: cd C:\Acrolinx\server\bin java -jar "../lib/jetty-pkcs12- <VERSION_NUMMER>.jar" combined.pkcs12 mykeystore Die Variable <VERSION_NUMMER> steht für die Versionsnummer der aktuell installierten PKCS12-Importer-Jar. Diese Versionsnummer ermitteln Sie, indem Sie im Verzeichnis <INSTALL_VER>\server\lib nach einer Datei des Musters jetty-pkcs12-<version_nummer>.jar suchen. Ihr endgültiger Befehl kann etwa so aussehen: cd C:\Acrolinx\server\bin java -jar "../lib/jetty-pkcs12-jetty-pkcs12-8.1.16.v20140903.jar" combined.pkcs12 mykeystore Dadurch wird ein Keystore im bin -Verzeichnis Ihres Servers erstellt. 3/6
2. Öffnen Sie Ihr Overlay der Hauptserver-Eigenschaftendatei und fügen Sie die folgenden Eigenschaften hinzu. endpointhost=<server_name> Setzen Sie endpointhost zum Namen des Servers und nicht zur IP-Adresse, also so: endpointhost=acroserver. Zur Verwendung von HTTPS muss der Hauptserver einen DNS- Namen haben, auf den die Clients zugreifen können. Aktualisieren Sie den Wert endpointport, wenn Sie einen anderen Port für die sichere Kommunikation verwenden. Standardmäßig verbinden sich alle Clients und Sprachserver über den Port 8031 mit dem Hauptserver. Wenn Ihre Sicherheitsrichtlinien erfordern, dass eine sichere Kommunikation über einen bestimmten Port wie zum Beispiel 443 verläuft, fügen Sie den zusätzlichen endpointport wie folgt hinzu: endpointport=443 3. Definieren Sie die Keystore- und Truststore-Details, indem Sie die folgenden Eigenschaften hinzufügen: sslkeystore=<keystore_name> sslkeystorepassword=<passwort> sslkeystore=mykeystore ssltruststore=<keystore_name> sslkeystorepassword=pru4hatr ssltruststorepassword=<passwort> ssltruststore=meinkeystore Beispiel: ssltruststorepassword=pru4hatr In den meisten Fällen sind die Werte für ssltruststore und sslkeystore identisch. Wenn Sie die Eigenschaften für ssltruststore auslassen, werden die Werte, die Sie für sslkeystore verwendet haben, automatisch auch als Einstellungen für ssltruststore verwendet. Wenn Sie einen separaten Truststore erstellt haben, müssen Sie stattdessen den entsprechenden Dateinamen und das Passwort verwenden. 4. Wenn Sie eine andere als die mit Acrolinx Server installierte JVM verwenden und einen anderen Keystore-Algorithmus festlegen möchten, müssen Sie die folgende Eigenschaft hinzufügen: ssl.keymanagerfactory.algorithm=<algorithm_name> Wenn Sie zum Beispiel die IBM JVM verwenden, geben Sie die Eigenschaft folgendermaßen ein: ssl.keymanagerfactory.algorithm=ibmx509 5. Speichern Sie die Änderungen und starten Sie den Hauptserver neu. 6. Wenn Sie besonders sicher gehen möchten, können Sie den Hauptserver und die Sprachserver zur Kommunikation über HTTPS konfigurieren. Das ist nicht notwendig, aber es ist eine zusätzliche Sicherheitsmaßnahme gegen Angriffe aus dem Inneren Ihres Netzwerkes. Die Sicherung der internen Kommunikation ist auch dann sinnvoll, wenn Sprach- und Hauptserver über das Internet erreichbar sind. Wenn Sie die Kommunikation zwischen den Sprachservern und dem Hauptserver sichern, verwenden diese standardmäßig das TLS-Protokoll. Dies ist das aktuellste und sicherste Protokoll. a. Öffnen Sie Ihr Overlay jeder Sprachserver-Eigenschaftendatei. Die Overlays für die Sprachserver-Eigenschaftendatei finden Sie im folgenden Verzeichnis: %ACROLINX_CONFIGURATION_ROOT%\server\bin\ls-<NUMMER>.properties Der Platzhalter <NUMMER> steht für die Nummer des Sprachservers, zum Beispiel ls-01, ls-02 und so weiter. b. Aktualisieren Sie in jeder Datei die Eigenschaften wie im folgenden Beispiel: 4/6
coreserverendpointurl=https://<host_name>:<host_port>/acrolinx/services/internal/ls?wsdl endpointhost=<host_name> Ersetzen Sie den Platzhalter <HOST_NAME> mit dem Namen des Computers, auf dem der Hauptserver ausgeführt wird. Es ist wichtig, dass Sie den Hostnamen und nicht die IP-Adresse verwenden. Sonst kann es sein, dass die Konfiguration nicht richtig funktioniert. Wenn Ihr Server-Computer zum Beispiel acroserver heiß und Sie den Standardport 8031 verwenden, aktualisieren Sie die Eigenschaften so: coreserverendpointurl=https://acroserver:8031/acrolinx/services/internal/ls?wsdl endpointhost=acroserver c. Speichern Sie Ihre Änderungen und starten Sie den Sprachserver neu. Wenn Sie den Sprachserver neu starten, erstellt dieser automatisch ein Zertifikat und versucht, eine Verbindung zum Hauptserver herzustellen. Der Hauptserver weist diese Verbindung zunächst zurück, weil er das erstellte Zertifikat noch nicht kennt. Aber das ist kein Problem. Führen Sie einfach den nächsten Schritt aus. d. Importieren Sie das erstellte Zertifikat in den Java-Keystore für Ihren Sprachserver. Ihr Serverzertifikat ist im folgenden Verzeichnis gespeichert: %ACROLINX_CONFIGURATION_ROOT%/server/certificates/own/ Importieren Sie das Zertifikat mit dem Java-Keytool. Dieses Tool finden Sie im folgenden Verzeichnis: <JAVA_HOME>\bin\keytool.exe Wenn Sie Windows benutzen, sieht der Pfad zu Ihrem Keytool etwa so aus: C:\Program Files\Java\jre8\bin\keytool.exe Wenn Sie ein Unix-basiertes Betriebssystem benutzen, sieht der Pfad zu Ihrem Keytool etwa so aus: /usr/java/default/bin/keytool Verwenden Sie die folgenden Befehle, um das Zertifikat zu importieren: cd <INSTALL_DIR>\bin\ <JAVA_HOME>\bin\keytool -importcert -file %ACROLINX_CONFIGURATION_ROOT%/server/certificates/own/<ZERTIFIKAT_NAME> -keystore mykeystore -alias ls-<nummer> Wenn Ihr Zertifikat für den Sprachserver 01 zum Beispiel CN\=acroserver\,DC\=ls-01\,DC\=smarttech\,DC\=com.der heißt und Sie den Acrolinx Server auf Ubuntu ausführen, sehen Ihre Befehle etwa so aus: cd /home/admin/acrolinx/server/bin /usr/java/default/bin/keytool -importcert -file /home/admin/.config/acrolinx/serverconfiguration4.5.0/server/certificates/own/cn\=acroserver\,dc\=ls- 01\,DC\=smarttech\,DC\=com.der -keystore mykeystore -alias ls-01 e. Starten Sie den Hauptserver neu. Nun sollte der Hauptserver die sichere Verbindung vom Sprachserver erkennen. Aktualisieren der Serveradresse in den Acrolinx Plug-ins und Clients Nachdem Sie die Kommunikation des Acrolinx Servers mit HTTPS gesichert haben, müssen Benutzer die Verbindungseigenschaften in ihren Plug-ins und Clients für die neue HTTPS- Adresse aktualisieren. 5/6
Weisen Sie Benutzer von Plug-ins an, das Menü Optionen > Server wechseln... zu öffnen und das Feld Serveradresse folgendermaßen zu aktualisieren: https://<server_name>:8031 HINWEIS: In einigen älteren Plug-in-Versionen und Integrationen funktioniert dieses Adressformat nicht immer. Wenn eine Fehlermeldung angezeigt wird, verwenden Sie diese Adresse: https://<server_name>:8031/acrolinx/services/core?wsdl Auf das Dashboard müssen Benutzer ebenfalls über die HTTPS-Adresse zugreifen: https://<server_name>:8031/dashboard.html Wenn Sie ein selbstsigniertes Zertifikat verwenden, müssen Benutzer die eventuell im Webbrowser angezeigten Sicherheitswarnungen akzeptieren. Konfigurieren einer Cipher Suite Whitelist Mit einer Cipher Suite Whitelist stellen Sie sicher, dass der Acrolinx Server nur bestimmte Cipher Suites verwendet, wenn Seiten über eine sichere Verbindung ausgegeben werden. Es ist nicht zwingend erforderlich, eine Cipher Suite Whitelist zu konfigurieren. Sie sollten sie allerdings konfigurieren, wenn Ihre Sicherheitsrichtlinien nur sehr sichere Cipher Suites für die Kommunikation über sichere Verbindungen zulassen. So konfigurieren Sie eine Cipher Suite Whitelist: 1. Öffnen Sie Ihr Overlay der Hauptserver-Eigenschaftendatei. 2. Fügen Sie die folgende Eigenschaft hinzu: sslciphersuitewhitelist=<cipher_suite_namen> Geben Sie die Namen der Cipher Suite in einer kommagetrennten Liste ein. Wir empfehlen, nur besonders sichere Cipher Suites zuzulassen und mittlere und schwache Cipher Suites auszuschließen. Für eine entsprechende Konfiguration geben Sie die Eigenschaft folgendermaßen ein: Beispiel: sslciphersuitewhitelist=tls_ecdhe_rsa_with_aes_128_cbc_sha,tls_ecdhe_rsa_with_aes_128_cbc_sha256,tls_ecdhe_rsa_with_3des_ede_cbc_sha 3. Speichern Sie Ihre Änderungen und starten Sie den Hauptserver neu. Deaktivieren von SSL-Protokollen Für maximale Sicherheit sollten Sie nur sichere SSL-Protokolle verwenden. Aktuell bedeutet das die Verwendung des TLS-Protokolls, bevorzugt in Version 1.2. In Acrolinx können Sie einzelne SSL-Protokolle deaktivieren, die entweder nicht mehr sicher sind oder in bestimmten Konfigurationen unsicher sein können. Bevor Sie SSL-Protokolle deaktivieren, sollten Sie immer eine detaillierte Auflistung der aktuell verwendeten Integrationen anfertigen. Einige ältere Integrationen besonders selbst entwickelte Integrationen funktionieren mit den neuen und sicheren Protokollen nicht immer. So deaktivieren Sie SSL-Protokolle: 1. Öffnen Sie Ihr Overlay der Hauptserver-Eigenschaftendatei. 2. Fügen Sie die folgende Eigenschaft hinzu: ssldisabledprotocols=<protokoll_namen> Geben Sie die Namen der SSL-Protokolle in einer kommagetrennten Liste ein. Für maximale Sicherheit empfehlen wir, alle SSL-Protokolle zu deaktivieren und nur TLS zu verwenden. Für eine entsprechende Konfiguration geben Sie die Eigenschaft folgendermaßen ein: ssldisabledprotocols=sslv2,sslv3 3. Speichern Sie Ihre Änderungen und starten Sie den Hauptserver neu. 6/6