MicroStrategy ONE

Konfigurieren Sie SSL für PostgreSQL und Platform Analytics Consumer

Die Kommunikation zwischen dem Platform Analytics-Verbraucher und einer PostgreSQL-Datenbank kann so konfiguriert werden, dass SSL zur Verschlüsselung und Authentifizierung verwendet wird. Weitere Informationen finden Sie im PostgreSQL-Dokumentation.

Serverseitige Konfiguration von PostgreSQL

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

  1. Führen Sie die aus OpenSSL Weisen Sie der Anwendung als Administrator zu, 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 OpenSSL-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:

    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=IP or HOSTNAME"
  3. Öffnen Sie die 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 Folgendes hinzu postgres.conf Datei:

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

    Entfernen Sie die Kommentarzeichen 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 Folgendes hinzufügen oder ändern:

    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   platform_analytics_wh   DB_USERNAME   
    CLIENT_IP/32   cert clientcert=1
  7. Speichern Sie die Änderungen an beiden Dateien.

  8. Öffnen Start > Services und starten Sie PostgreSQL oder MicroStrategy Repository neu.

Clientseitiges 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 gegebenenfalls auskommentieren tsa_policy1 im openssl.cnf Datei. 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 von Platform Analytics verwendete JDBC-PostgreSQL-Treiber erfordert, dass die Schlüsseldatei im DER-Format und nicht im PEM-Format vorliegt.

    Kopieren
    pkcs8 -topk8 -inform PEM -in postgresql.key -outform 
    DER -nocrypt -out postgresql.key.der
  3. Abhängig vom für PostgreSQL verwendeten ODBC-Treiber kann ein Schlüsselspeicher erforderlich sein. So erstellen Sie einen Schlüsselspeicher:

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

    Der Clientschlüssel liegt im DER-Format vor.

    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

Serverseitige Konfiguration von PostgreSQL

  1. Generieren Sie einen privaten Schlüssel mit OpenSSL. Beim Generieren eines privaten Schlüssels müssen Sie 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. Legen Sie dazu fest chmod Berechtigung für 0600. Alternativ kann der Eigentümer der Datei auch sein Stammverzeichnis und über Gruppenlesezugriff verfügen, d. h. chmod 0640 Berechtigungen. Dieses Setup ist für Installationen vorgesehen, bei denen Zertifikats- und Schlüsseldateien vom Betriebssystem verwaltet werden. Der Benutzer, unter dem der PostgreSQL-Server läuft, sollte dann Mitglied der Gruppe werden, die Zugriff auf diese Zertifikats- und Schlüsseldateien hat.

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

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

    Wenn Eigentum von Stammverzeichnis:

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

    -subj ist eine Verknüpfung, um die Eingabeaufforderung für die Informationen zu vermeiden.

    -x509 erstellt ein selbstsigniertes Zertifikat und keine 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. Gehen Sie für alle erstellten Zertifikate wie folgt vor:

    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 die Kommentarzeichen 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 Folgendes hinzufügen oder ändern:

    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   platform_analytics_wh   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. Starten Sie PostgreSQL oder MicroStrategy Repository neu.

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

    Kopieren
    systemctl restart postgresql-11

    Wenn MicroStrategy Repository für Platform Analytics verwendet wird, verwenden Sie den folgenden Befehl:

    Dieser Befehl kann nicht ausgeführt werden als Stammverzeichnis.

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

Clientseitiges 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 und nicht im PEM-Format vorliegt.

    Kopieren
    openss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
  3. Abhängig vom für PostgreSQL verwendeten ODBC-Treiber kann ein Schlüsselspeicher erforderlich sein. So erstellen Sie einen Schlüsselspeicher:

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

    Der Clientschlüssel liegt im DER-Format vor.

    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