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.
- Windows
- Linux
Configuration côté serveur PostgreSQL
Vous devez avoir OpenSSL version 1.1.0 ou ultérieure installée.
-
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.
Copiergenrsa -des3 -out server.key 1024
rsa -in server.key -out server.key -
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.
Copierreq -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP or HOSTNAME"
-
Ouvrez l'invite de commande ou l'explorateur de fichiers et accédez à l'emplacement du certificat du serveur.
-
Copiez le certificat de serveur nouvellement créé pour créer l'autorité de certification :
Copiercopy server.crt root.crt
-
Ajouter ce qui suit à postgres.conf fichier :
Copierlisten_addresses = '*' # what IP address(es) to listen on;
Annuler le commentaire et modifier ce qui suit :
Copierssl = 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 -
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).
Copierhostssl platform_analytics_wh DB_USERNAME
CLIENT_IP/32 cert clientcert=1 -
Sauvegardez les modifications sur les deux fichiers.
- Ouvrir Démarrage > Services et redémarrez le référentiel PostgreSQL ou MicroStrategy .
Configuration côté client
-
Créez la clé privée et le certificat :
Copiergenrsa -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 -CAcreateserialSi 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 -
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.
Copierpkcs8 -topk8 -inform PEM -in postgresql.key -outform
DER -nocrypt -out postgresql.key.der -
Selon le pilote ODBC utilisé pour PostgreSQL, un magasin de clés peut être nécessaire. Pour créer un magasin de clés :
Copierpkcs12 -export -in postgresql.crt -inkey
postgresql.key -out postgresql.p12 -
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.
CopierpgWarehouseDbConnection:
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
-
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 :
Copieropenssl genrsa -des3 -out server.key 1024
-
Supprimez la phrase secrète :
Copieropenssl rsa -in server.key -out server.key
-
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 :
Copierchown PSQL_OWNER:PSQL_OWNER server.key
chmod 0600 server.keySi la propriété est root:
Copierchown root:root server.key
chmod 06040 server.key -
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.
Copieropenssl req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP OR HOSTNAME"
cp server.crt root.crt -
Effectuez les opérations suivantes pour tous les certificats créés :
Copierchown PSQL_OWNER:PSQL_OWNER server.crt
chmod 0600 server.crt
chown PSQL_OWNER:PSQL_OWNER root.crt
chmod 0600 root.crt -
Ajouter ce qui suit à postgres.conf fichier :
Copierlisten_addresses = '*' # what IP address(es) to listen on;
Annuler le commentaire et modifier ce qui suit :
Copierssl = 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 -
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).
Copierhostssl platform_analytics_wh DB_USERNAME CLIENT_IP/32 cert clientcert=1
-
Redémarrez le référentiel PostgreSQL ou MicroStrategy .
Si PostgreSQL a été installé en dehors de MicroStrategy, utilisez une commande comme celle-ci :
Copiersystemctl 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.
Copiercd /opt/MicroStrategy/PlatformAnalytics/bin
./mstr_pg_ctl restart
Configuration côté client
-
Créez la clé privée et le certificat :
Copieropenssl 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 -
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.
Copieropenss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
-
Selon le pilote ODBC utilisé pour PostgreSQL, un magasin de clés peut être nécessaire. Pour créer un magasin de clés :
Copieropenss1 pkcs12 -export -in postgresql.crt -inkey postgresql.key -out postgresql.p12
-
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.
CopierpgWarehouseDbConnection:
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