Sichere Verbindungen konfigurieren

Für Informationen über die SSL-Konfiguration des Remote Connectors siehe Sichere Verbindung zur INUBIT Process Engine konfigurieren.

SSL-Verbindung und Server-Authentifizierung konfigurieren

Sie können die Kommunikation zwischen der INUBIT Process Engine und Clients, wie z.B. der INUBIT Workbench, absichern, indem Sie das über SSL/TLS gesicherte HTTPS-Protokoll verwenden.

Beim Einsatz von HTTPS werden die Daten verschlüsselt, welche z.B. die INUBIT Process Engine und das Enterprise Portal oder die INUBIT Process Engine und ein Web-Services-Konsument austauschen. Zusätzlich können Clients (z.B. die INUBIT Workbench, Web-Browser) das Zertifikat des Servers (INUBIT Process Engine, Enterprise Portal) zur Authentifizierung der Verbindung prüfen.

Als Betreiber der INUBIT Process Engine erstellen Sie einen Keystore. Ein Keystore enthält Zertifikate mit ihren zugehörigen öffentlichen Schlüsseln und die zu den Zertifikaten gehörigen privaten Schlüssel. Der öffentliche Schlüssel ist Teil des Zertifikats, das der Client zur Authentifizierung des Servers nutzt.

In der INUBIT Process Engine konfigurieren Sie die HTTPS-Verbindung und hinterlegen den Keystore.

Anhand der Domain wird im Keystore nach einem Zertifikat mit dem entsprechenden Alias gesucht. Benennen Sie Ihren Keystore daher nach dem DNS-Namen, damit dieser gefunden werden kann.

Beim Client (z.B. INUBIT Workbench) hinterlegen Sie das Zertifikat des Servers in einem sogenannten Truststore und konfigurieren dort ebenfalls eine HTTPS-Verbindung. Im Gegensatz zum Keystore enthält der Truststore lediglich Zertifikate.

Nun können die INUBIT Process Engine auf den privaten Schlüssel und die INUBIT Workbench auf das Zertifikat mit dem öffentlichen Schlüssel zugreifen.

Im Normalfall die SSL-Verbindung zwischen Client und Server bereits am LoadBalancer terminiert. Dies kann genügen, wenn die Verbindung zwischen dem LoadBalancer und dahinterliegender Instanz in einem sicheren Netzwerk aufgebaut wird. Zusätzlich kann auch die Konfiguration zwischen dem LoadBalancer und der Instanz über SSL abgesichert werden. Informationen zur SSL-Konfiguration des eingesetzten LoadBalancers sind aus dessen Handbuch zu entnehmen.

So gehen Sie vor

  1. Erstellen Sie den Keystore und ein selbst signiertes Zertifikat.
    Rufen Sie dazu keytool.exe über die Kommandozeile im Verzeichnis <java-installdir>/bin auf.
    Die folgenden Parameter erzeugen einen Keystore ibis_demo_keystore mit einem selbst signierten Zertifikat mit einem öffentlichen Schlüssel. Beim Erzeugen vergeben Sie für den Keystore und für das Zertifikat jeweils ein Passwort. Passen Sie die Parameterwerte Ihrer eigenen IT-Umgebung an (außer ‑alias):

    keytool
    -genkey
    -keystore C:\keys\ibis_demo_keystore.jks
    -alias tomcat
    -dname "CN=server.domain.com, O=Example AG, C=DE"
    -keyalg RSA
  2. Extrahieren Sie das Zertifikat:

    keytool
    -export
    -alias tomcat
    -storepass PasswordKeystore
    -keystore C:\keys\ibis_demo_keystore.jks
    -file C:\keys\ibis_demo_certificate.crt
  3. Konfigurieren Sie die INUBIT Process Engine. Öffnen Sie dazu die folgende Konfigurationsdatei:
    <inubit-installdir>/server/process_engine/conf/server.xml
    und navigieren Sie zum Standard-Connectorpfad

    <Connector
    port="8443"
    protocol="org.apache.coyote.http11.Http11Nio2Protocol"
    maxThreads="150"
    SSLEnabled="true">
    <SSLHostConfig>
    <Certificate
    certificateKeystoreFile="conf/localhost-rsa.jks"
    certificateKeystorePassword="change it"
    type="RSA" />
    </SSLHostConfig>
    </Connector>

    Der Zertifikattyp muss kompatibel sein. Er muss eine von UNDEFINED, RSA, DSA oder EC.

    Wenn nur ein Zertifikat innerhalb von SSLHostConfig verschachtelten ist, dann ist dieses Attribut nicht notwendig und standardmäßig auf UNDEFINED gesetzt. Wenn vielfache Zertifikaten innerhalb von SSLHostConfig verschachtelt werden.

  4. Bearbeiten Sie die folgenden Parameter:

    • certificateKeystoreFile
      Name und vollständiger Pfad zur RSA-Keystore Datei des Zertifikats.

    • certificateKeystorePassword
      Passwort für die RSA-Keystore Datei des Zertifikats.

  5. Starten Sie die INUBIT Process Engine neu.

  6. Zertifikat zum Truststore des Clients hinzufügen:

    Die Server-Authentifizierung findet nur statt, wenn diese in der Workbench ausgewählt wurde und das hinzugefügte Zertifikat einen privaten Schlüssel enthält.

    Mit dem folgenden Befehl kopieren Sie das Zertifikat auf den Client-Rechner und importieren es in den Truststore:

    keytool
    -import
    -alias tomcat
    -file C:\keys\ibis_demo_certificate.crt
    -keystore C:\keys\ibis_demo_truststore.jks
  7. Bestätigen Sie die Rückfrage Diesem Zertifikat vertrauen? mit Ja.

  8. Bei Einsatz eines selbst signierten Zertifikats müssen Sie den Truststore für Java bekannt machen, weil das Java-Framework die Vertrauenswürdigkeit des Serverzertifikats überprüft. Wenn der Truststore nicht bekannt ist, schlägt die Kommunikation mit der INUBIT Process Engine über HTTPS fehl, z.B. beim Nachladen von Dokumenten von der INUBIT Process Engine über die document()-XSLT-Funktion oder beim Laden einer URL im XML Editor.
    Der Truststore muss in den Startskripts der INUBIT Process Engine und der INUBIT Workbench angegeben werden:

    1. Öffnen Sie das zu Ihrer Installation passende Startskript der INUBIT Process Engine: <inubit-installdir>/server/process_engine/bin/setenv.[bat|sh]

    2. Öffnen Sie das Startskript der INUBIT Workbench unter <inubit-installdir>/client/bin/start_local.[bat|sh].

    3. Fügen Sie folgende Zeile ein und passen Sie den Pfad zu Ihrem Truststore an:

      • Windows

        set JVM_PARAMS=%JVM_PARAMS%
        -Djavax.net.ssl.trustStore=<path-to-truststore>\ibis_demo_truststore.jks
      • Linux

        JVM_PARAMS="$JVM_PARAMS
        -Djavax.net.ssl.trustStore=<path-to-truststore>/ibis_demo_truststore.jks"
  9. Den Inhalt des Truststores können Sie mit folgendem Kommando ansehen:

    keytool
    -keystore C:\keys\keys\ibis_demo_truststore.jks
    -list
    -v
  10. Starten Sie die INUBIT Workbench neu.

  11. Für die SSL-Konfiguration legen Sie ein neues Login-Profil an, das eine HTTPS-Verbindung nutzt, z.B. https://localhost:8443/ibis/servlet/IBISSoapServlet und geben Sie den Pfad zur Truststore-Datei an.

    administration guide 222 1

INUBIT Process Engine mit der NIO Implementierung konfigurieren

Von Apache Tomcat empfohlene Struktur.

Voraussetzungen

So gehen Sie vor

  1. Entfernen Sie die Kommentarzeichen des Beispiels für die NIO Struktur:

    <Connector
    port="8443"
    protocol="org.apache.coyote.http11.Http11Nio2Protocol"
    maxThreads="150"
    SSLEnabled="true">
    <SSLHostConfig>
    <Certificate
    certificateKeystoreFile="conf/localhost-rsa.jks"
    certificateKeystorePassword="change it"
    type="RSA" />
    </SSLHostConfig>
    </Connector>
  2. Bearbeiten Sie die folgenden Parameter:

    • certificateKeystoreFile
      Name und vollständiger Pfad zur RSA-Keystore Datei des Zertifikats.

    • certificateKeystorePassword
      Passwort für die RSA-Keystore Datei.

  3. Fortfahren mit Schritt 4, siehe SSL-Verbindung und Server-Authentifizierung konfigurieren.

INUBIT Process Engine mit der APR/Native Implementierung konfigurieren

Voraussetzungen

So gehen Sie vor

  1. Entfernen Sie die Kommentarzeichen des Beispiels für die APR/Native Struktur:

    <Connector
    port="8443"
    protocol="org.apache.coyote.http11.Http11AprProtocol"
    maxThreads="150"
    SSLEnabled="true" >
    <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
    <SSLHostConfig>
    <Certificate
    certificateKeyFile="conf/localhost-rsa-key.pem"
    certificateFile="conf/localhost-rsa-cert.pem"
    certificateChainFile="conf/localhost-rsa-chain.pem"
    type="RSA" />
    </SSLHostConfig>
    </Connector>
  2. Bearbeiten Sie die folgenden Parameter:

    • certificateKeystoreFile
      Name und vollständiger Pfad zur RSA‑Keystore‑Datei des Zertifikats.

    • certificateFile
      Name und vollständiger Pfad zur RSA‑Zertifikatsdatei.

    • certificateChainFile
      Name und vollständiger Pfad zur RSA‑Chain‑Zertifikatsdatei.

  3. Fortfahren mit Schritt 4, siehe SSL-Verbindung und Server-Authentifizierung konfigurieren.

INUBIT Process Engine mit der bisherigen Struktur konfigurieren

Voraussetzungen

So gehen Sie vor

  1. Benutzen Sie dieses Beispiel:

    <Connector
    port="8443"
    protocol="HTTP/1.1"
    URIEncoding="UTF-8"
    connectionTimeout="20000"
    maxThreads="150"
    minSpareThreads="25"
    maxSpareThreads="75"
    enableLookups="false"
    acceptCount="100"
    compression="on"
    compressionMinSize="2048"
    compressableMimeType="text/html,text/xml,text/javascript"
    server="Apache"
    emptySessionPath="true"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    clientAuth="false"
    sslProtocol="TLS"
    keystoreFile="/absolute/path/to/keystore.jks"
    keystorePass="changeit"
    keyAlias="chageit"
    ciphers="TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384" />
    </Connector>
  2. Fügen Sie die Liste der durch Komma getrennten Cipher-Namen hinzu.

  3. Bearbeiten Sie die folgenden Parameter:

    • keystoreFile
      Name und vollständiger Pfad zur JKS-Datei (privater Schlüssel und Zertifikat).

    • keystorePass
      Keystore-Passwort

    • keyAlias
      Alias-Name des Keystore-Eintrags. Fehlt dieser Eintrag, wird standardmäßig tomcat oder der erste Eintrag im Keystore verwendet.

  4. Fortfahren mit Schritt 4, siehe SSL-Verbindung und Server-Authentifizierung konfigurieren.

Traces bei HTTPS-Verbindungen aktivieren

Um bei HTTPS-Verbindungen zwischen der INUBIT Workbench und der INUBIT Process Engine aussagekräftige Traces zu erhalten, können Sie die Startskripte der beiden Komponenten anpassen.

So gehen Sie vor

  1. Schließen Sie die INUBIT Workbench und stoppen Sie die INUBIT Process Engine.

  2. Öffnen Sie folgende Startskripte:

    • INUBIT Workbench:
      <inubit-installdir>/client/bin/start_local.[bat|sh]

    • INUBIT Process Engine
      <inubit-installdir>/server/process_engine/bin/setenv.sh

  3. Fügen Sie folgende Zeilen hinzu:

    • INUBIT Workbench:

      set JAVA_PARAMS=%JAVA_PARAMS%
      -Djavax.net.debug= ssl,handshake,data,
      trustmanager
    • INUBIT Process Engine

      set JVM_PARAMS=%JVM_PARAMS%
      -Djavax.net.debug=ssl,handshake,data,
      trustmanager
  4. Starten Sie die INUBIT Process Engine und die INUBIT Workbench neu.

HTTP-/HTTPS-Proxy für INUBIT Workbench und/oder INUBIT Process Engine konfigurieren

Proxy-Server können eingesetzt werden zur Kommunikation über HTTP(S)

  • zwischen der INUBIT Workbench und der INUBIT Process Engine,

  • zwischen der INUBIT Process Engine und anderen, entfernten Rechnern,

  • zwischen Remote Connector und anderen, entfernten Rechnern.

Externe Dateien (WSDLs, URLs etc.) müssen nicht von der Workbench aus erreichbar sein, weil sie generell über die INUBIT Process Engine geladen werden.

Ein Proxy-Server erfüllt z.B. folgende Aufgaben:

  • Sicherheit erhöhen
    Rechner im lokalen Netz sollten keinen direkten Internetzugang haben. Als Schnittstelle zwischen beiden Netzen kann der Proxy-Server eingesetzt werden.

  • Bandbreite kontrollieren
    Der Proxy-Server kann z.B. verschiedenen Benutzergruppen unterschiedliche Ressourcen zuteilen.

Proxy-Server zwischen INUBIT Workbench und INUBIT Process Engine konfigurieren

So gehen Sie vor

  1. Stoppen Sie die INUBIT Workbench.

  2. Öffnen Sie das Startskript der INUBIT Workbench unter <inubit-installdir>/client/bin/start_local.[bat|sh].

  3. Fügen Sie die zu Ihrem Protokoll passenden Zeilen ein und passen Sie die Werte an:

    • HTTP

      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttp.proxyHost=Proxy_IP_oder_URL
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttp.proxyPort=8080
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttp.proxyUserName=Benutzername
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttp.proxyPassword=Passwort
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttp.nonProxyHosts=*.yourcompany.com
    • HTTPS

      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttps.proxyHost=Proxy_IP_oder_URL
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttps.proxyPort=8080
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttps.proxyUserName=Benutzername
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttps.proxyPassword=Passwort
      set JVM_PARAMS=%JVM_PARAMS%
      -Dhttps.nonProxyHosts=*.yourcompany.com
  4. Starten Sie die INUBIT Workbench erneut.

Proxy-Server zwischen INUBIT Process Engine und entfernten Rechnern konfigurieren

In manchen Netzwerken sind HTTP-/HTTPS-Zugriffe ausschließlich über einen Proxy-Server möglich. Diesen Proxy-Server konfigurieren Sie zentral für die INUBIT Process Engine.

Zusätzlich können Sie Ausnahmen festlegen, d.h. Rechneraddressen definieren, die direkt angesprochen werden sollen und nicht über den Proxy-Server.

Verwenden Sie einen Proxy-Server, wenn Fehler beim Publizieren und Deployen von Web Services Input Listener oder Medium Connectoren mit externem Schemazugriff auftreten.

So gehen Sie vor

  1. Öffnen Sie in der INUBIT Workbench das Register Administration > Allgemein > Verwaltung > Proxy.

  2. Markieren Sie die Option Proxy-Konfiguration verwenden, um die folgenden Optionen zu aktivieren. Wenn Sie die Option Proxy-Konfiguration verwenden nach dem Konfigurieren der Proxy-Settings deaktivieren, bleibt Ihre Proxy-Konfiguration erhalten, wird aber nicht mehr genutzt.

    Die Werte in dieser Konfiguration überschreiben die Werte, die im Startskript gesetzt sind! Wenn Sie den Wert für Server leer lassen und die Option Proxy-Konfiguration verwenden aktiviert ist, wird explizit kein Proxy verwendet. Die Startskripte finden Sie unter: <inubit-installdir>/server/process_engine/bin/setenv.[bat|sh].

  3. Legen Sie Ihre Proxy-Einstellungen fest. Sobald Sie eine Option anklicken, wird eine Erläuterung dazu angezeigt.

  4. Speichern Sie Ihre Angaben.

HTTP-/HTTPS-Ports ändern

Bei Bedarf können Sie den HTTP(S)-Port Ihrer INUBIT Process Engine ändern. Standardmäßig verwendet die INUBIT Process Engine folgende Portnummern:

  • HTTP: 8000

  • HTTPS: 8443

So gehen Sie vor

  1. Öffnen Sie die zu Ihrem System passende Konfigurationsdatei:
    <inubit-installdir>/server/process_engine/conf/server.xml

  2. Ändern Sie die Ports.

  3. Speichern Sie Ihre Änderungen.

  4. Starten Sie die INUBIT Process Engine neu.

    Wenn Sie die Portnummer(n) in der Datei server.xml geändert haben, müssen Sie die Portnummer(n) in der Datei check_is_status.[sh|bat] in folgenden Verzeichnissen – anhängig von Ihrer Installation – ebenfalls anpassen:

    <inubit-installdir>/server/process_engine/bin
    <inubit-installdir>/client/bin

    Dazu ändern Sie die folgende Zeile:
    set START_URL=https://<server>:<port>

    Wenn Sie ein anderes Protokoll als HTTP und/oder einen anderen Hostnamen als localhost, müssen Sie diese Werte ebenfalls anpassen.