MicroStrategy ONE

Konfigurieren Sie SSL für PostgreSQL und Platform Analytics Consumer

Die Kommunikation zwischen dem Platform Analytics-Konsumenten und einer PostgreSQL-Datenbank kann für die Verwendung von SSL zur Verschlüsselung und Authentifizierung konfiguriert werden. Weitere Informationen finden Sie im PostgreSQL-Dokumentation.

Servermäßige PostgreSQL-Konfiguration

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

  1. Führen Sie den aus OpenSLS Sie können die Anwendung als Administrator verwenden, um einen privaten Schlüssel zu generieren. Beim Generieren des privaten Schlüssels müssen Sie eine Passphrase angeben:

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

    Kopieren
    genrsa -des3 -out server.key 1024
    rsa -in server.key -out server.key
  2. Erstellen Sie das Serverzertifikat:

    Die OpenSLS-Anwendung muss möglicherweise neu gestartet werden, um das Serverzertifikat erfolgreich zu erstellen.

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

    -x509 erstellt ein selbst unterzeichnetes Zertifikat anstelle einer Zertifikatsanforderung.

    Kopieren
    req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP or HOSTNAME"
  3. Öffnen Sie die Eingabeaufforderung oder den Datei-Explorer und navigieren Sie zum Serverzertifikat.

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

    Kopieren
    copy server.crt root.crt
  5. Fügen Sie Folgendes hinzu postgres.conf Datei:

    Kopieren
    listen_addresses = '*' # what IP address(es) to listen on;

    Entfernen Sie das Kommentarfeld und ändern Sie Folgendes:

    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
  6. Im pg_hba.conf Datei hinzufügen oder ändern:

    Möglicherweise müssen Sie Host-Einträge auskommentieren.

    hostssl erzwingt SSL für DB_USERNAME.

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

    Kopieren
    hostssl   platform_analytics_wh   DB_USERNAME   
    CLIENT_IP/32   cert clientcert=1
  7. Speichern Sie die Änderungen an beiden Dateien.

  8. Öffnen Starten > Dienste and restart PostgreSQL or MicroStrategy Repository.

Client-Seiten-Setup

  1. Erstellen Sie den privaten Schlüssel und das Zertifikat:

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

    Wenn Sie eine Fehlermeldung erhalten, müssen Sie diese möglicherweise auskommentieren tsa_policy1 im openssl.cnf Datei. Speichern 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 von Platform Analytics verwendete JDBC-PostgreSQL-Treiber erfordert, dass die Schlüsseldatei im DER-Format statt im PEM-Format vorliegen.

    Kopieren
    pkcs8 -topk8 -inform PEM -in postgresql.key -outform 
    DER -nocrypt -out postgresql.key.der
  3. Abhängig vom ODBC-Treiber, der für PostgreSQL verwendet wird, ist möglicherweise eine Schlüsselspeicherung erforderlich. So erstellen Sie einen Schlüsselspeicher:

    Kopieren
    pkcs12 -export -in postgresql.crt -inkey 
    postgresql.key -out postgresql.p12
  4. Kopieren Sie die Dateien, die erstellt wurden, auf den Client-Computer und aktualisieren Sie PAConsumerConfig.yaml Datei mit dem unten stehenden Pfad zum Zertifikat und Schlüssel.

    Der Client-Schlüssel befindet sich in DER Format.

    Kopieren
    pgWarehouseDbConnection:
        pgWhHost: YOUR_HOST
        pgWhUser: DB_USERNAME
        pgWhPasswd: YOUR_PASSWORD
        pgWhPort: 5432
        pgWhDb: platform_analytics_wh
        pgWhSSLcert: \LOCATION_OF_FILE\postgresql.crt
        pgWhSSLkey: \LOCATION_OF_FILE\postgresql.key.der
        pgWhSSLrootcert: \LOCATION_OF_FILE\root.crt
        pgWhSSLmode: verify-ca

Servermäßige PostgreSQL-Konfiguration

  1. Generieren Sie einen privaten Schlüssel mit OpenSLS. Sie müssen beim Generieren eines privaten Schlüssels eine Passphrase angeben:

    Kopieren
    openssl genrsa -des3 -out server.key 1024
  2. Entfernen Sie die Passphrase:

    Kopieren
    openssl rsa -in server.key -out server.key
  3. Gewähren Sie Zugriff auf die Schlüsseldatei.

    Die Berechtigungen für server.key muss jeglichen Zugriff auf die Welt oder Gruppe deaktivieren. Tun Sie dies, indem Sie den festlegen chmod Berechtigung zu 0600. Alternativ kann die Datei auch Eigentum von sein root und über Gruppenlesezugriff verfügen, d. h., chmod 0640 Berechtigungen. Dieses Setup ist für Installationen gedacht, bei denen Zertifikat- und Schlüsseldateien vom Betriebssystem verwaltet werden. Der Benutzer, unter dem der PostgreSQL-Server ausgeführt wird, sollte dann zu einem Mitglied der Gruppe gemacht werden, die Zugriff auf diese Zertifikat- und Schlüsseldateien hat.

    Ändern Sie die Dateiberechtigungen und den Eigentümer in den Systembenutzer, der PostgreSQL ausführt:

    Kopieren
    chown PSQL_OWNER:PSQL_OWNER server.key
    chmod 0600 server.key

    Wenn es sich im Eigentum von befindet root:

    Kopieren
    chown root:root server.key
    chmod 06040 server.key
  4. Erstellen Sie das Serverzertifikat und die Zertifizierungsstelle:

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

    -x509 erstellt ein selbst unterzeichnetes Zertifikat anstelle einer Zertifikatsanforderung.

    Kopieren
    openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP OR HOSTNAME"
    cp server.crt root.crt
  5. Führen Sie die folgenden Schritte für alle erstellten Zertifikate durch:

    Kopieren
    chown PSQL_OWNER:PSQL_OWNER server.crt
    chmod 0600 server.crt

    chown PSQL_OWNER:PSQL_OWNER root.crt
    chmod 0600 root.crt
  6. Fügen Sie Folgendes hinzu postgres.conf Datei:

    Kopieren
    listen_addresses = '*' # what IP address(es) to listen on;

    Entfernen Sie das Kommentarfeld und ändern Sie Folgendes:

    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. Im pg_hba.conf Datei hinzufügen oder ändern:

    Möglicherweise müssen Sie Host-Einträge auskommentieren.

    hostssl erzwingt SSL für DB_USERNAME.

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

    Kopieren
    hostssl   platform_analytics_wh   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. PostgreSQL oder MicroStrategy Repository neu starten.

    Wenn PostgreSQL außerhalb von MicroStrategy installiert wurde, verwenden Sie einen Befehl wie den folgenden:

    Kopieren
    systemctl restart postgresql-11

    Wenn MicroStrategy Repository for Platform Analytics verwendet wird, verwenden Sie den folgenden Befehl:

    Dieser Befehl kann nicht als ausgeführt werden root.

    Kopieren
    cd /opt/MicroStrategy/PlatformAnalytics/bin 
    ./mstr_pg_ctl restart

Client-Seiten-Setup

  1. Erstellen Sie den privaten Schlüssel und das Zertifikat:

    Kopieren
    openssl genrsa -des3 -out postgresql.key 1024
    openssl rsa -in postgresql.key -out postgresql.key
    openssl req -new -key postgresql.key -out postgresql.csr -subj "/CN=DB_USERNAME"
    openssl x509 -req -in postgresql.csr -CA root.crt -CAkey server.key -out postgresql.crt -CAcreateserial
  2. Konvertieren Sie den privaten Schlüssel mit dem folgenden Befehl in das DER-Format:

    Der von Platform Analytics verwendete JDBC-PostgreSQL-Treiber erfordert, dass die Schlüsseldatei im DER-Format statt im PEM-Format vorliegen.

    Kopieren
    openss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
  3. Abhängig vom ODBC-Treiber, der für PostgreSQL verwendet wird, ist möglicherweise eine Schlüsselspeicherung erforderlich. So erstellen Sie einen Schlüsselspeicher:

    Kopieren
    openss1 pkcs12 -export -in postgresql.crt -inkey postgresql.key -out postgresql.p12
  4. Kopieren Sie die Dateien, die erstellt wurden, auf den Client-Computer und aktualisieren Sie PAConsumerConfig.yaml Datei mit dem unten stehenden Pfad zum Zertifikat und Schlüssel.

    Der Client-Schlüssel befindet sich in DER Format.

    Kopieren
    pgWarehouseDbConnection:
        pgWhHost: YOUR_HOST
        pgWhUser: DB_USERNAME
        pgWhPasswd: YOUR_PASSWORD
        pgWhPort: 5432
        pgWhDb: platform_analytics_wh
        pgWhSSLcert: /LOCATION_OF_FILE/postgresql.crt
        pgWhSSLkey: /LOCATION_OF_FILE/postgresql.key.der
        pgWhSSLrootcert: /LOCATION_OF_FILE/root.crt
        pgWhSSLmode: verify-ca