MicroStrategy ONE

Configurer SSL pour PostgreSQL et le service de stockage

La communication entre le service Microstrategy Storage et une base de données PostgreSQL peut être configurée pour utiliser SSL pour le chiffrement et l'authentification. Voir la Documentation PostgreSQL pour plus d'informations.

Configuration côté serveur PostgreSQL

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

Si vous avez déjà configuré le côté serveur de PostgreSQL pour Platform Analytics ou Collaboration Service, passez à Configuration côté client à l'aide d'un élément généré server.key et root.crt

  1. Exécutez l'application 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 ou sur une ligne de commande Windows, vous devrez peut-être inclure openssl avant chaque ligne.

    Copier
    genrsa -out server.key 1024
  2. Créez le certificat du serveur.

    L'application OpenSSL devra peut-être être relancée pour réussir à 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=your.domain.com"
  3. Ouvrez une invite de commande ou un 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 la ligne affichée ci-dessous à postgres.conf.

    Copier
    listen_addresses = '*' # what IP address(es) to listen on;
  6. Décommentez et modifiez le code ci-dessous.

    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 pg_hba.conf, ajoutez ou modifiez le code ci-dessous.

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

    hostssl applique SSL pour DB_USERNAME.

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

    Copier
    hostssl   mstr_library   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. Enregistrez vos modifications dans les deux fichiers.

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

Configuration côté client

Après avoir terminé la configuration côté serveur de PostgreSQL, vous pouvez démarrer la configuration et l'installation côté client. Cela génère des certificats et des clés pour le service de stockage.

Vous devez créer deux paires de clés et de certificats pour mstr_library utilisateur et mstr_library_application utilisateur.

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

    Copier
    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

    Si vous recevez une erreur, vous devrez peut-être commenter tsa_policy1 dans openssl.cnf. Enregistrez 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 le service de stockage nécessite que le fichier de clé soit au format DER plutôt qu'au format PEM.

    Copier
    pkcs8 -topk8 -inform PEM -outform DER -in mstr_library.key -out mstr_library.pk8 -nocrypt
  3. Comme pour les étapes 1 et 2, créez la clé privée et le certificat pour mstr_library_application utilisateur :

    Copier
    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. Copiez les fichiers créés sur Library Server et mettez à jour configOverride.properties avec le chemin absolu vers le certificat et la clé.

    Le configOverride.properties Le fichier peut être trouvé dans :

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

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

    Copier
    #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