Strategy ONE

Configurer SSL pour PostgreSQL et Platform Analytics Consumer

La communication entre le consommateur Platform Analytics et une base de données PostgreSQL peut être configurée pour utiliser SSL pour le chiffrement et l'authentification. Pour plus d'informations, reportez-vous à la Documentation PostgreSQL.

Configuration côté serveur PostgreSQL

Vous devez avoir OpenSSL version 1.1.0 ou ultérieure installée.

  1. Exécuter OpenSSL en tant qu'administrateur pour générer une clé privée. Vous devez fournir une phrase secrète lors de la génération de la clé privée :

    openssl n'est pas inclus au début de chaque ligne, car les commandes sont exécutées avec l'application OpenSSL. Si les certificats et les clés sont générés sur un système Unix, vous devrez peut-être inclure openssl avant chaque ligne.

    Copier
    genrsa -des3 -out server.key 1024
    rsa -in server.key -out server.key
  2. Créez le certificat de serveur :

    Il se peut que vous deviez relancer l'application OpenSSL pour créer le certificat de serveur.

    -subj est un raccourci pour éviter d'inviter à fournir des informations.

    -x509 produit un certificat auto-signé au lieu d'une demande de certificat.

    Copier
    req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP or HOSTNAME"
  3. Ouvrez l'invite de commande ou l'explorateur de fichiers et accédez à l'emplacement du certificat du serveur.

  4. Copiez le certificat de serveur nouvellement créé pour créer l'autorité de certification :

    Copier
    copy server.crt root.crt
  5. Ajouter ce qui suit à postgres.conf fichier :

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

    Annuler le commentaire et modifier ce qui suit :

    Copier
    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. Dans la pg_hba.conf fichier, ajoutez ou modifiez ce qui suit :

    Vous devrez peut-être commenter les entrées d'hôte.

    hostssl applique SSL pour DB_USERNAME.

    clientcert=1 applique l'authentification client (authentification bidirectionnelle).

    Copier
    hostssl   platform_analytics_wh   DB_USERNAME   
    CLIENT_IP/32   cert clientcert=1
  7. Sauvegardez les modifications sur les deux fichiers.

  8. Ouvrir Démarrage > Services et redémarrez le référentiel PostgreSQL ou MicroStrategy .

Configuration côté client

  1. Créez la clé privée et le certificat :

    Copier
    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

    Si vous recevez une erreur, vous devrez peut-être commenter tsa_policy1 dans la openssl.cnf fichier. Sauvegardez et relancez openssl en tant qu'administrateur.

    Copier
    # 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. Convertissez la clé privée au format DER à l'aide de la commande ci-dessous :

    Le pilote JDBC PostgreSQL utilisé par Platform Analytics demande que le fichier de clé soit au format DER au lieu du format PEM.

    Copier
    pkcs8 -topk8 -inform PEM -in postgresql.key -outform 
    DER -nocrypt -out postgresql.key.der
  3. Selon le pilote ODBC utilisé pour PostgreSQL, un magasin de clés peut être nécessaire. Pour créer un magasin de clés :

    Copier
    pkcs12 -export -in postgresql.crt -inkey 
    postgresql.key -out postgresql.p12
  4. Copiez les fichiers créés sur l'ordinateur client et mettez à jour PAConsumerConfig.yaml Fichier avec le chemin d'accès ci-dessous au certificat et à la clé.

    La clé client est dans DER format.

    Copier
    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

Configuration côté serveur PostgreSQL

  1. Générez une clé privée à l'aide d'OpenSSL. Vous devez fournir une phrase secrète lors de la génération d'une clé privée :

    Copier
    openssl genrsa -des3 -out server.key 1024
  2. Supprimez la phrase secrète :

    Copier
    openssl rsa -in server.key -out server.key
  3. Accordez l'accès au fichier de clé.

    Les autorisations sur server.key doit désactiver tout accès au monde ou au groupe . Pour ce faire, définissez chmod autorisation de 0600. Sinon, le fichier peut être la propriété de root et disposez d'un accès de lecture de groupe, c'est-à-dire chmod 0640 autorisations. Cette configuration est destinée aux installations où les fichiers de certificat et de clé sont gérés par le système d'exploitation. L'utilisateur sous lequel le serveur PostgreSQL s'exécute doit alors devenir un membre du groupe qui a accès à ces certificats et fichiers de clés.

    Modifiez les autorisations sur le fichier et le propriétaire pour l'utilisateur système qui exécute PostgreSQL :

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

    Si la propriété est root:

    Copier
    chown root:root server.key
    chmod 06040 server.key
  4. Créez le certificat du serveur et l'autorité de certification :

    -subj est un raccourci pour éviter l'invite pour les informations.

    -x509 produit un certificat auto-signé au lieu d'une demande de certificat.

    Copier
    openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP OR HOSTNAME"
    cp server.crt root.crt
  5. Effectuez les opérations suivantes pour tous les certificats créés :

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

    chown PSQL_OWNER:PSQL_OWNER root.crt
    chmod 0600 root.crt
  6. Ajouter ce qui suit à postgres.conf fichier :

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

    Annuler le commentaire et modifier ce qui suit :

    Copier
    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. Dans la pg_hba.conf fichier, ajoutez ou modifiez ce qui suit :

    Vous devrez peut-être commenter les entrées d'hôte.

    hostssl applique SSL pour DB_USERNAME.

    clientcert=1 applique l'authentification client (authentification bidirectionnelle).

    Copier
    hostssl   platform_analytics_wh   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. Redémarrez le référentiel PostgreSQL ou MicroStrategy .

    Si PostgreSQL a été installé en dehors de MicroStrategy, utilisez une commande comme celle-ci :

    Copier
    systemctl restart postgresql-11

    Si le référentiel MicroStrategy est utilisé pour Platform Analytics, utilisez la commande suivante :

    Cette commande ne peut pas être exécutée en tant que root.

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

Configuration côté client

  1. Créez la clé privée et le certificat :

    Copier
    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. Convertissez la clé privée au format DER à l'aide de la commande ci-dessous :

    Le pilote JDBC PostgreSQL utilisé par Platform Analytics demande que le fichier de clé soit au format DER au lieu du format PEM.

    Copier
    openss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
  3. Selon le pilote ODBC utilisé pour PostgreSQL, un magasin de clés peut être nécessaire. Pour créer un magasin de clés :

    Copier
    openss1 pkcs12 -export -in postgresql.crt -inkey postgresql.key -out postgresql.p12
  4. Copiez les fichiers créés sur l'ordinateur client et mettez à jour PAConsumerConfig.yaml Fichier avec le chemin d'accès ci-dessous au certificat et à la clé.

    La clé client est dans DER format.

    Copier
    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