Strategy ONE

Configurar SSL para PostgreSQL e Platform Analytics Consumer

A comunicação entre o consumidor do Platform Analytics e um banco de dados PostgreSQL pode ser configurada para usar SSL para criptografia e autenticação. Para obter mais informações, consulte o Documentação do PostgreSQL de .

Configuração do PostgreSQL Server

Você deve ter OpenSSL versão 1.1.0 ou posterior instalada.

  1. Executar o OpenSSL como Administrador para gerar uma chave privada. Você deve fornecer uma senha ao gerar a chave privada:

    openssl não é incluído no início de cada linha porque os comandos estão sendo executados com o aplicativo OpenSSL. Se os certificados e chaves estiverem sendo gerados em um sistema Unix, pode ser necessário incluir openssl antes de cada linha.

    Copiar
    genrsa -des3 -out server.key 1024
    rsa -in server.key -out server.key
  2. Crie o certificado do servidor:

    Talvez o aplicativo OpenSSL precise ser reinicializado para criar o certificado do servidor com êxito.

    -subj é um atalho para evitar a solicitação de informações.

    -x509 produz um certificado autoassinado em vez de uma solicitação de certificado.

    Copiar
    req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP or HOSTNAME"
  3. Abra o Prompt de comando ou o Explorador de arquivos e navegue até onde o certificado do servidor está localizado.

  4. Copie o certificado do servidor recém-criado para criar a autoridade de certificação:

    Copiar
    copy server.crt root.crt
  5. Adicione o seguinte ao postgres.conf arquivo:

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

    Remova o comentário e altere o seguinte:

    Copiar
    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. No pg_hba.conf arquivo, adicione ou modifique o seguinte:

    Você pode precisar comentar as entradas do host.

    hostssl aplica SSL para DB_USERNAME.

    clientcert=1 impõe autenticação de cliente (autenticação bidirecional).

    Copiar
    hostssl   platform_analytics_wh   DB_USERNAME   
    CLIENT_IP/32   cert clientcert=1
  7. Salve as alterações nos dois arquivos.

  8. Abrir Iniciar > Serviços e reinicie o PostgreSQL ou o Repositório MicroStrategy .

Configuração do cliente

  1. Crie a chave privada e o certificado:

    Copiar
    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 você receber uma mensagem de erro, pode ser necessário comentar tsa_policy1 no openssl.cnf arquivo . Salvar e reiniciar openssl como administrador.

    Copiar
    # 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. Converta a chave privada no formato DER usando o comando abaixo:

    O driver JDBC PostgreSQL usado pelo Platform Analytics exige que o arquivo de chaves esteja no formato DER, em vez de no formato PEM.

    Copiar
    pkcs8 -topk8 -inform PEM -in postgresql.key -outform 
    DER -nocrypt -out postgresql.key.der
  3. Dependendo do driver ODBC que está sendo usado para o PostgreSQL, um armazenamento de chaves pode ser necessário. Para criar um armazenamento de chaves:

    Copiar
    pkcs12 -export -in postgresql.crt -inkey 
    postgresql.key -out postgresql.p12
  4. Copie os arquivos que foram criados para a máquina do cliente e atualize o PAConsumerConfig.yaml com o caminho abaixo para o certificado e a chave.

    A chave do cliente está no DER formato.

    Copiar
    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

Configuração do PostgreSQL Server

  1. Gere uma chave privada usando o OpenSSL. Você deve fornecer uma senha ao gerar uma chave privada:

    Copiar
    openssl genrsa -des3 -out server.key 1024
  2. Remova a senha:

    Copiar
    openssl rsa -in server.key -out server.key
  3. Conceda acesso ao arquivo de chaves.

    As permissões em server.key deve desabilitar qualquer acesso ao mundo ou grupo. Faça isso definindo a chmod permissão para 0600. Como alternativa, o arquivo pode ser propriedade de root e ter acesso de leitura de grupo, ou seja, chmod 0640 permissões. Esta configuração se destina a instalações em que os arquivos de chave e certificado são gerenciados pelo sistema operacional. O usuário sob o qual o servidor PostgreSQL é executado deve se tornar membro do grupo que tem acesso a esse certificado e arquivos de chaves.

    Altere as permissões do arquivo e o proprietário para o usuário do sistema executando PostgreSQL:

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

    Se for propriedade de root:

    Copiar
    chown root:root server.key
    chmod 06040 server.key
  4. Crie o certificado do servidor e a autoridade de certificação:

    -subj é um atalho para evitar a solicitação das informações.

    -x509 produz um certificado autoassinado em vez de uma solicitação de certificado.

    Copiar
    openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP OR HOSTNAME"
    cp server.crt root.crt
  5. Faça o seguinte para todos os certificados criados:

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

    chown PSQL_OWNER:PSQL_OWNER root.crt
    chmod 0600 root.crt
  6. Adicione o seguinte ao postgres.conf arquivo:

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

    Remova o comentário e altere o seguinte:

    Copiar
    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. No pg_hba.conf arquivo, adicione ou modifique o seguinte:

    Você pode precisar comentar as entradas do host.

    hostssl aplica SSL para DB_USERNAME.

    clientcert=1 impõe autenticação de cliente (autenticação bidirecional).

    Copiar
    hostssl   platform_analytics_wh   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. Reinicie o PostgreSQL ou o Repositório MicroStrategy .

    Se o PostgreSQL foi instalado fora do MicroStrategy, use um comando como o seguinte:

    Copiar
    systemctl restart postgresql-11

    Se o MicroStrategy Repository for usado para o Platform Analytics, use o seguinte comando:

    Este comando não pode ser executado como root.

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

Configuração do cliente

  1. Crie a chave privada e o certificado:

    Copiar
    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. Converta a chave privada no formato DER usando o comando abaixo:

    O driver JDBC PostgreSQL usado pelo Platform Analytics exige que o arquivo de chaves esteja no formato DER, em vez de no formato PEM.

    Copiar
    openss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
  3. Dependendo do driver ODBC que está sendo usado para o PostgreSQL, um armazenamento de chaves pode ser necessário. Para criar um armazenamento de chaves:

    Copiar
    openss1 pkcs12 -export -in postgresql.crt -inkey postgresql.key -out postgresql.p12
  4. Copie os arquivos que foram criados para a máquina do cliente e atualize o PAConsumerConfig.yaml com o caminho abaixo para o certificado e a chave.

    A chave do cliente está no DER formato.

    Copiar
    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