MicroStrategy ONE

Configurare SSL per Consumer PostgreSQL e Platform Analytics

La comunicazione tra il consumer di Platform Analytics e un database PostgreSQL può essere configurata per l'utilizzo di SSL per la crittografia e l'autenticazione. Per ulteriori informazioni, consultare il Documentazione PostgreSQL.

Configurazione lato server PostgreSQL

Indispensabile OpenSSL versione 1.1.0 o successiva installata.

  1. Esegui OpenSSL application come amministratore per generare una chiave privata. È necessario fornire una passphrase durante la generazione della chiave privata:

    openssl non è incluso all'inizio di ogni riga perché i comandi sono in esecuzione con l'applicazione OpenSSL. Se i certificati e le chiavi sono in corso di generazione in un sistema Unix, potrebbe essere necessario includere openssl prima di ogni riga

    Copia
    genrsa -des3 -out server.key 1024
    rsa -in server.key -out server.key
  2. Crea il certificato del server:

    Potrebbe essere necessario riavviare l’applicazione OpenSSL per creare correttamente il certificato del server.

    -subj è una scelta rapida per evitare di richiedere informazioni.

    -x509 produce un certificato autofirmato anziché una richiesta di certificato.

    Copia
    req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP or HOSTNAME"
  3. Aprire il Prompt dei comandi o Esplora file e individuare la posizione in cui si trova il certificato del server.

  4. Copiare il certificato del server appena creato per creare l'autorità di certificazione:

    Copia
    copy server.crt root.crt
  5. Aggiungere quanto segue a postgres.conf file:

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

    Elimina il commento e modifica quanto segue:

    Copia
    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. Nel pg_hba.conf file, aggiungere o modificare quanto segue:

    Potrebbe essere necessario aggiungere un commento alle voci dell'host.

    hostssl applica SSL per DB_USERNAME.

    clientcert=1 applica l'autenticazione client (autenticazione bidirezionale).

    Copia
    hostssl   platform_analytics_wh   DB_USERNAME   
    CLIENT_IP/32   cert clientcert=1
  7. Salvare le modifiche in entrambi i file.

  8. Apri Avvia > Servizi e riavviare PostgreSQL o MicroStrategy Repository.

Configurazione lato client

  1. Creare la chiave privata e il certificato:

    Copia
    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

    Se si riceve un messaggio di errore, potrebbe essere necessario aggiungere un commento tsa_policy1 nel openssl.cnf file. Salva e riavvia openssl come amministratore.

    Copia
    # 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. Convertire la chiave privata nel formato DER utilizzando il comando seguente:

    Il driver JDBC PostgreSQL utilizzato da Platform Analytics richiede che il file di chiave sia in formato DER anziché PEM.

    Copia
    pkcs8 -topk8 -inform PEM -in postgresql.key -outform 
    DER -nocrypt -out postgresql.key.der
  3. A seconda del driver ODBC utilizzato per PostgreSQL, potrebbe essere necessario un archivio chiavi. Per creare un archivio chiavi:

    Copia
    pkcs12 -export -in postgresql.crt -inkey 
    postgresql.key -out postgresql.p12
  4. Copiare i file creati sul computer client e aggiornare il file PAConsumerConfig.yaml con il percorso seguente del certificato e della chiave.

    La chiave client è in DER format.

    Copia
    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

Configurazione lato server PostgreSQL

  1. Genera una chiave privata utilizzando OpenSSL. È necessario fornire una passphrase quando si genera una chiave privata:

    Copia
    openssl genrsa -des3 -out server.key 1024
  2. Rimuovere la passphrase:

    Copia
    openssl rsa -in server.key -out server.key
  3. Concedere l'accesso al file di chiave.

    Le autorizzazioni per server.key deve disabilitare qualsiasi accesso a mondi o gruppi. A tale scopo, impostare il chmod autorizzazione per 0600. In alternativa, il file può essere di proprietà di root e dispongono dell'accesso in lettura di gruppo, ovvero chmod 0640 autorizzazioni. Questa configurazione è destinata alle installazioni in cui i certificati e i file chiave sono gestiti dal sistema operativo. L'utente con cui è in esecuzione il server PostgreSQL deve quindi far parte del gruppo che ha accesso a tali file di chiavi e certificati.

    Modificare le autorizzazioni e il proprietario del file impostando l'utente del sistema che esegue PostgreSQL:

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

    Se di proprietà di root:

    Copia
    chown root:root server.key
    chmod 06040 server.key
  4. Creare il certificato del server e l'autorità di certificazione:

    -subj è una scorciatoia per evitare di richiedere le informazioni.

    -x509 produce un certificato autofirmato anziché una richiesta di certificato.

    Copia
    openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP OR HOSTNAME"
    cp server.crt root.crt
  5. Effettuare le seguenti operazioni per tutti i certificati creati:

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

    chown PSQL_OWNER:PSQL_OWNER root.crt
    chmod 0600 root.crt
  6. Aggiungere quanto segue a postgres.conf file:

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

    Elimina il commento e modifica quanto segue:

    Copia
    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. Nel pg_hba.conf file, aggiungere o modificare quanto segue:

    Potrebbe essere necessario aggiungere un commento alle voci dell'host.

    hostssl applica SSL per DB_USERNAME.

    clientcert=1 applica l'autenticazione client (autenticazione bidirezionale).

    Copia
    hostssl   platform_analytics_wh   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. Riavviare PostgreSQL o MicroStrategy Repository.

    Se PostgreSQL è stato installato all'esterno di MicroStrategy, utilizzare un comando come il seguente:

    Copia
    systemctl restart postgresql-11

    Se MicroStrategy Repository viene utilizzato per Platform Analytics, utilizzare il seguente comando:

    Questo comando non può essere eseguito come root.

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

Configurazione lato client

  1. Creare la chiave privata e il certificato:

    Copia
    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. Convertire la chiave privata nel formato DER utilizzando il comando seguente:

    Il driver JDBC PostgreSQL utilizzato da Platform Analytics richiede che il file di chiave sia in formato DER anziché PEM.

    Copia
    openss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
  3. A seconda del driver ODBC utilizzato per PostgreSQL, potrebbe essere necessario un archivio chiavi. Per creare un archivio chiavi:

    Copia
    openss1 pkcs12 -export -in postgresql.crt -inkey postgresql.key -out postgresql.p12
  4. Copiare i file creati sul computer client e aggiornare il file PAConsumerConfig.yaml con il percorso seguente del certificato e della chiave.

    La chiave client è in DER format.

    Copia
    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