Strategy ONE

Configurar SSL para el consumidor de PostgreSQL y Platform Analytics

La comunicación entre el consumidor de Platform Analytics y una base de datos de PostgreSQL se puede configurar para utilizar SSL para el cifrado y la autenticación. Para obtener más información, consulte la Documentación de PostgreSQL.

Configuración del servidor PostgreSQL

Debe tener OpenSSL versión 1.1.0 o posterior instalada.

  1. Ejecutar OpenSSL como administrador para generar una clave privada. Debe proporcionar una frase de contraseña al generar la clave privada:

    openssl no está incluido al principio de cada línea porque los comandos se están ejecutando con la aplicación OpenSSL. Si los certificados y las claves se generan en un sistema Unix, es posible que tenga que incluir openssl antes de cada línea.

    Copiar
    genrsa -des3 -out server.key 1024
    rsa -in server.key -out server.key
  2. Cree el certificado de servidor:

    Es posible que tenga que volver a lanzar la aplicación OpenSSL para crear correctamente el certificado de servidor.

    -subj es un acceso directo para evitar la solicitud de información.

    -x509 genera un certificado autofirmado en lugar de una solicitud de certificado.

    Copiar
    req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP or HOSTNAME"
  3. Abra el símbolo del sistema o el explorador de archivos y navegue hasta la ubicación del certificado del servidor.

  4. Copie el certificado de servidor recién creado para crear la autoridad de certificación:

    Copiar
    copy server.crt root.crt
  5. Añada lo siguiente a la postgres.conf archivo:

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

    Elimine los comentarios y modifique lo siguiente:

    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. En el pg_hba.conf , añada o modifique lo siguiente:

    Es posible que tenga que comentar las entradas de host.

    hostssl aplica SSL para DB_USERNAME.

    clientcert=1 aplica la autenticación de cliente (autenticación bidireccional).

    Copiar
    hostssl   platform_analytics_wh   DB_USERNAME   
    CLIENT_IP/32   cert clientcert=1
  7. Guarde los cambios en los dos archivos.

  8. Abrir Iniciar > Servicios y reinicie PostgreSQL o MicroStrategy Repository.

Configuración del cliente

  1. Cree la clave privada y el 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

    Si recibe un error, puede que tenga que comentar tsa_policy1 en el openssl.cnf archivo. Guarde y vuelva a lanzar 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. Convierta la clave privada al formato DER con el siguiente comando:

    El controlador JDBC PostgreSQL que utiliza Platform Analytics requiere que el archivo de clave esté en formato DER y no en formato PEM.

    Copiar
    pkcs8 -topk8 -inform PEM -in postgresql.key -outform 
    DER -nocrypt -out postgresql.key.der
  3. Dependiendo del controlador de ODBC que se utilice para PostgreSQL, puede ser necesario un almacén de claves. Para crear un almacén de claves:

    Copiar
    pkcs12 -export -in postgresql.crt -inkey 
    postgresql.key -out postgresql.p12
  4. Copie los archivos que se crearon en el equipo cliente y actualice los PAConsumerConfig.yaml con la ruta siguiente al certificado y la clave.

    La clave de cliente está en 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

Configuración del servidor PostgreSQL

  1. Genere una clave privada con OpenSSL. Debe proporcionar una frase de contraseña al generar una clave privada:

    Copiar
    openssl genrsa -des3 -out server.key 1024
  2. Eliminar la frase de contraseña:

    Copiar
    openssl rsa -in server.key -out server.key
  3. Conceda acceso al archivo de clave.

    Los permisos sobre server.key debe deshabilitar cualquier acceso al mundo o grupo. Para ello, ajuste el chmod permiso para 0600. De forma alternativa, el archivo puede ser propiedad de root y tener acceso de lectura de grupo, es decir, chmod 0640 permisos. Esta configuración está pensada para instalaciones en las que el sistema operativo administra los archivos de certificados y claves. El usuario bajo el que se ejecuta el servidor de PostgreSQL debe convertirse en miembro del grupo que tiene acceso a esos archivos de certificado y clave.

    Cambie los permisos y el propietario del archivo al usuario del sistema que ejecuta PostgreSQL:

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

    Si es propiedad de root:

    Copiar
    chown root:root server.key
    chmod 06040 server.key
  4. Cree el certificado de servidor y la autoridad de certificación:

    -subj es un acceso directo para evitar que se pida la información.

    -x509 genera un certificado autofirmado en lugar de una solicitud 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. Haga lo siguiente para todos los certificados creados:

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

    chown PSQL_OWNER:PSQL_OWNER root.crt
    chmod 0600 root.crt
  6. Añada lo siguiente a la postgres.conf archivo:

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

    Elimine los comentarios y modifique lo siguiente:

    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. En el pg_hba.conf , añada o modifique lo siguiente:

    Es posible que tenga que comentar las entradas de host.

    hostssl aplica SSL para DB_USERNAME.

    clientcert=1 aplica la autenticación de cliente (autenticación bidireccional).

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

    Si PostgreSQL se instaló fuera de MicroStrategy, use un comando como el siguiente:

    Copiar
    systemctl restart postgresql-11

    Si se utiliza MicroStrategy Repository para Platform Analytics, use el siguiente comando:

    Este comando no puede ejecutarse ya que root.

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

Configuración del cliente

  1. Cree la clave privada y el 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. Convierta la clave privada al formato DER con el siguiente comando:

    El controlador JDBC PostgreSQL que utiliza Platform Analytics requiere que el archivo de clave esté en formato DER y no en formato PEM.

    Copiar
    openss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
  3. Dependiendo del controlador de ODBC que se utilice para PostgreSQL, puede ser necesario un almacén de claves. Para crear un almacén de claves:

    Copiar
    openss1 pkcs12 -export -in postgresql.crt -inkey postgresql.key -out postgresql.p12
  4. Copie los archivos que se crearon en el equipo cliente y actualice los PAConsumerConfig.yaml con la ruta siguiente al certificado y la clave.

    La clave de cliente está en 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