MicroStrategy ONE

Konfigurieren von SSL für PostgreSQL und den Speicherdienst

Die Kommunikation zwischen dem Microstrategy Storage-Dienst und einer PostgreSQL-Datenbank kann so konfiguriert werden, dass SSL zur Verschlüsselung und Authentifizierung verwendet wird. Siehe die PostgreSQL-Dokumentation für weitere Informationen.

Serverseitige Konfiguration von PostgreSQL

Sie müssen OpenSSL Version 1.1.0 oder höher installiert haben.

Wenn Sie PostgreSQL bereits serverseitig für Platform Analytics oder Collaboration Service konfiguriert haben, fahren Sie mit fort Clientseitiges Setup unter Verwendung einer generierten server.key und root.crt

  1. Führen Sie die OpenSSL-Anwendung als Administrator aus, um einen privaten Schlüssel zu generieren. Sie müssen beim Generieren des privaten Schlüssels eine Passphrase angeben.

    openssl ist nicht am Anfang jeder Zeile enthalten, da die Befehle mit der OpenSSL-Anwendung ausgeführt werden. Wenn die Zertifikate und Schlüssel auf einem Unix-System oder in der Windows-Befehlszeile generiert werden, müssen Sie sie möglicherweise einschließen openssl vor jeder Zeile.

    Kopieren
    genrsa -out server.key 1024
  2. Erstellen Sie das Serverzertifikat.

    Um das Serverzertifikat erfolgreich zu erstellen, muss die OpenSSL-Anwendung möglicherweise neu gestartet werden.

    -subj ist eine Verknüpfung, um die Eingabeaufforderung zur Eingabe von Informationen zu vermeiden.

    -x509 erstellt ein selbstsigniertes Zertifikat und keine Zertifikatsanforderung.

    Kopieren
    req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=your.domain.com"
  3. Öffnen Sie eine Eingabeaufforderung oder den Datei-Explorer und navigieren Sie zum Speicherort des Serverzertifikats.

  4. Kopieren Sie das neu erstellte Serverzertifikat, um die Zertifizierungsstelle zu erstellen.

    Kopieren
    copy server.crt root.crt
  5. Fügen Sie die unten gezeigte Zeile zu hinzu postgres.conf.

    Kopieren
    listen_addresses = '*' # what IP address(es) to listen on;
  6. Entfernen Sie die Kommentarzeichen und ändern Sie den untenstehenden Code.

    Kopieren
    ssl = on
    ssl_ca_file = '\\LOCATION_OF_FILE\\root.crt'
    ssl_cert_file = '\\LOCATION_OF_FILE\\server.crt'
    ssl_key_file = '\\LOCATION_OF_FILE\\server.key'
    ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
    ssl_prefer_server_ciphers = on
  7. In pg_hba.conf, fügen Sie den folgenden Code hinzu oder ändern Sie ihn.

    Möglicherweise müssen Sie Hosteinträge auskommentieren.

    hostssl erzwingt SSL für DB_USERNAME.

    clientcert=1 erzwingt die Client-Authentifizierung (bidirektionale Authentifizierung).

    Kopieren
    hostssl   mstr_library   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. Speichern Sie Ihre Änderungen in beiden Dateien.

  9. Wählen Sie aus Start > Dienste und starten Sie PostgreSQL oder MicroStrategy Repository neu.

Clientseitiges Setup

Nachdem Sie die serverseitige PostgreSQL-Konfiguration abgeschlossen haben, können Sie mit der clientseitigen Konfiguration und Einrichtung beginnen. Dadurch werden Zertifikate und Schlüssel für den Speicherdienst generiert.

Sie müssen zwei Paare von Schlüsseln und Zertifikaten für erstellen mstr_library Benutzer und die mstr_library_application Benutzer.

  1. Erstellen Sie den privaten Schlüssel und das Zertifikat für mstr_library Benutzer:

    Kopieren
    genrsa -out mstr_library.key 1024
    req -new -key mstr_library.key -out mstr_library.csr -subj "/CN=mstr_library"
    x509 -req -in mstr_library.csr -CA root.crt -CAkey server.key -out mstr_library.crt -CAcreateserial

    Wenn Sie eine Fehlermeldung erhalten, müssen Sie diese gegebenenfalls auskommentieren tsa_policy1 in openssl.cnf. Speichern Sie und starten Sie OpenSSL als Administrator neu.

    Kopieren
    # Policies used by the TSA examples.
    #tsa_policy1 = 1.2.3.4.1
    tsa_policy2 = 1.2.3.4.5.6
    tsa_policy3 = 1.2.3.4.5.7 
  2. Konvertieren Sie den privaten Schlüssel mit dem folgenden Befehl in das DER-Format.

    Der vom Speicherdienst verwendete JDBC-PostgreSQL-Treiber erfordert, dass die Schlüsseldatei im DER-Format und nicht im PEM-Format vorliegt.

    Kopieren
    pkcs8 -topk8 -inform PEM -outform DER -in mstr_library.key -out mstr_library.pk8 -nocrypt
  3. Erstellen Sie ähnlich wie in den Schritten 1 und 2 den privaten Schlüssel und das Zertifikat für für mstr_library_application Benutzer:

    Kopieren
    genrsa -out mstr_library_application.key 1024
    req -new -key mstr_library_application.key -out mstr_library_application.csr -subj "/CN=mstr_library_application"
    x509 -req -in mstr_library_application.csr -CA root.crt -CAkey server.key -out mstr_library_application.crt -CAcreateserial
    pkcs8 -topk8 -inform PEM -outform DER -in mstr_library_application.key -out mstr_library_application.pk8 -nocrypt
  4. Kopieren Sie die Dateien, die auf dem Library-Server erstellt und aktualisiert wurden configOverride.properties mit dem absoluten Pfad zum Zertifikat und Schlüssel.

    Die configOverride.properties -Datei finden Sie in:

    Windows: <DEPLOY_LOCATION>\webapps\MicroStrategyLibrary\WEB-INF\classes\config\ConfigOverride.properties

    Linux: <DEPLOY_LOCATION>/webapps/MicroStrategyLibrary/WEB-INF/classes/config/configOverride.properties

    Kopieren
    #postgresql database connection config
    datasource.url=jdbc:postgresql://YOUR_HOST:5432/mstr_library
    datasource.tlsEnabled=true
    datasource.sslMode=require
    datasource.sslRootCert=/LOCATION_OF_FILE/root.crt
    #for Windows: datasource.sslRootCert=Z:\LOCATION_OF_FILE\root.crt

    datasource.username=mstr_library_application
    datasource.password=<any string>
    datasource.sslCert=/LOCATION_OF_FILE/mstr_library_application.crt
    datasource.sslKey=/LOCATION_OF_FILE/mstr_library_application.pk8

    datasource.admin.username=mstr_library
    datasource.admin.password=<any string>
    datasource.admin.sslCert=/LOCATION_OF_FILE/mstr_library.crt
    datasource.admin.sslKey=/LOCATION_OF_FILE/mstr_library.pk8