MicroStrategy ONE

PostgreSQL 및 Platform Analytics 소비자에 대한 SSL 구성

암호화 및 인증에 SSL을 사용하도록 Platform Analytics 소비자와 PostgreSQL 데이터베이스 간의 통신을 구성할 수 있습니다. 자세한 내용은 다음을 참조하세요. PostgreSQL 문서.

PostgreSQL 서버측 구성

당신은 가지고 있어야합니다 OpenSSL 버전 1.1.0 이상이 설치되었습니다.

  1. 실행OpenSSL개인 키를 생성하려면 관리자 권한으로 애플리케이션을 실행하세요. 개인 키를 생성할 때 암호를 제공해야 합니다.

    openssl 명령은 OpenSSL 애플리케이션으로 실행되기 때문에 모든 줄의 시작 부분에 포함되지 않습니다. 인증서와 키가 Unix 시스템에서 생성되는 경우 다음을 포함해야 할 수도 있습니다. openssl 모든 줄 앞에.

    복사
    genrsa -des3 -out server.key 1024
    rsa -in server.key -out server.key
  2. 서버 인증서를 만듭니다.

    서버 인증서를 성공적으로 생성하려면 OpenSSL 애플리케이션을 다시 시작해야 할 수도 있습니다.

    -제목 정보를 묻는 메시지를 표시하지 않는 지름길입니다.

    -x509 인증서 요청이 아닌 자체 서명된 인증서를 생성합니다.

    복사
    req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP or HOSTNAME"
  3. 명령 프롬프트 또는 파일 탐색기를 열고 서버 인증서가 있는 위치로 이동합니다.

  4. 새로 생성된 서버 인증서를 복사하여 인증 기관을 생성합니다.

    복사
    copy server.crt root.crt
  5. 다음을 추가하십시오. postgres.conf 파일:

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

    다음을 주석 해제하고 변경합니다.

    복사
    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. 에서 pg_hba.conf 파일에서 다음을 추가하거나 수정합니다.

    호스트 항목을 주석 처리해야 할 수도 있습니다.

    호스트 SSL DB_USERNAME에 SSL을 적용합니다.

    클라이언트인증서=1 클라이언트 인증(양방향 인증)을 시행합니다.

    복사
    hostssl   platform_analytics_wh   DB_USERNAME   
    CLIENT_IP/32   cert clientcert=1
  7. 두 파일 모두에 변경 사항을 저장합니다.

  8. 열려 있는 시작 > 서비스 PostgreSQL을 다시 시작하거나 MicroStrategy 저장소.

클라이언트측 설정

  1. 개인 키와 인증서를 만듭니다.

    복사
    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

    오류가 발생하면 주석을 처리해야 할 수도 있습니다. tsa_policy1 에서 openssl.cnf 파일. openssl을 저장하고 관리자로 다시 시작하십시오.

    복사
    # 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. 아래 명령을 사용하여 개인 키를 DER 형식으로 변환합니다.

    Platform Analytics에서 사용하는 JDBC PostgreSQL 드라이버에서는 키 파일이 PEM 형식이 아닌 DER 형식이어야 합니다.

    복사
    pkcs8 -topk8 -inform PEM -in postgresql.key -outform 
    DER -nocrypt -out postgresql.key.der
  3. PostgreSQL에 사용되는 ODBC 드라이버에 따라 키 저장소가 필요할 수 있습니다. 키 저장소를 생성하려면 다음을 수행하십시오.

    복사
    pkcs12 -export -in postgresql.crt -inkey 
    postgresql.key -out postgresql.p12
  4. 생성된 파일을 클라이언트 시스템에 복사하고 업데이트합니다. PAConsumerConfig.yaml 인증서와 키에 대한 아래 경로를 포함하는 파일입니다.

    클라이언트 키는 DER 형식입니다.

    복사
    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

PostgreSQL 서버측 구성

  1. OpenSSL을 사용하여 개인 키를 생성합니다. 개인 키를 생성할 때 암호를 제공해야 합니다.

    복사
    openssl genrsa -des3 -out server.key 1024
  2. 암호를 제거하십시오:

    복사
    openssl rsa -in server.key -out server.key
  3. 키 파일에 대한 액세스 권한을 부여합니다.

    에 대한 권한 서버.키 월드나 그룹에 대한 액세스를 비활성화해야 합니다. 이 작업을 수행하려면 chmod 허가 0600. 또는 다음 사람이 파일을 소유할 수 있습니다. 뿌리 그룹 읽기 액세스 권한이 있습니다. 즉, chmod 0640 권한. 이 설정은 운영 체제에서 인증서 및 키 파일을 관리하는 설치를 위한 것입니다. 그런 다음 PostgreSQL 서버가 실행되는 사용자는 해당 인증서 및 키 파일에 액세스할 수 있는 그룹의 구성원이 되어야 합니다.

    파일 권한과 소유자를 PostgreSQL을 실행하는 시스템 사용자로 변경합니다.

    복사
    chown PSQL_OWNER:PSQL_OWNER server.key
    chmod 0600 server.key

    소유한 경우 뿌리:

    복사
    chown root:root server.key
    chmod 06040 server.key
  4. 서버 인증서 및 인증 기관을 만듭니다.

    -제목 정보를 묻는 메시지를 표시하지 않는 지름길입니다.

    -x509 인증서 요청이 아닌 자체 서명된 인증서를 생성합니다.

    복사
    openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj "/CN=IP OR HOSTNAME"
    cp server.crt root.crt
  5. 생성된 모든 인증서에 대해 다음을 수행합니다.

    복사
    chown PSQL_OWNER:PSQL_OWNER server.crt
    chmod 0600 server.crt

    chown PSQL_OWNER:PSQL_OWNER root.crt
    chmod 0600 root.crt
  6. 다음을 추가하십시오. postgres.conf 파일:

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

    다음을 주석 해제하고 변경합니다.

    복사
    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. 에서 pg_hba.conf 파일에서 다음을 추가하거나 수정합니다.

    호스트 항목을 주석 처리해야 할 수도 있습니다.

    호스트 SSL DB_USERNAME에 SSL을 적용합니다.

    클라이언트인증서=1 클라이언트 인증(양방향 인증)을 시행합니다.

    복사
    hostssl   platform_analytics_wh   DB_USERNAME   CLIENT_IP/32   cert clientcert=1
  8. PostgreSQL을 다시 시작하거나 MicroStrategy 저장소.

    PostgreSQL이 외부에 설치된 경우 MicroStrategy, 다음과 같은 명령을 사용하십시오.

    복사
    systemctl restart postgresql-11

    만약에 MicroStrategy 저장소는 Platform Analytics에 사용됩니다. 다음 명령을 사용하십시오.

    이 명령은 다음과 같이 실행할 수 없습니다. 뿌리.

    복사
    cd /opt/MicroStrategy/PlatformAnalytics/bin 
    ./mstr_pg_ctl restart

클라이언트 측 설정

  1. 개인 키와 인증서를 만듭니다.

    복사
    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. 아래 명령을 사용하여 개인 키를 DER 형식으로 변환합니다.

    Platform Analytics에서 사용하는 JDBC PostgreSQL 드라이버에서는 키 파일이 PEM 형식이 아닌 DER 형식이어야 합니다.

    복사
    openss1 pkcs8 -topk8 -inform PEM -in postgresql.key -outform DER -nocrypt -out postgresql.key.der
  3. PostgreSQL에 사용되는 ODBC 드라이버에 따라 키 저장소가 필요할 수 있습니다. 키 저장소를 생성하려면 다음을 수행하십시오.

    복사
    openss1 pkcs12 -export -in postgresql.crt -inkey postgresql.key -out postgresql.p12
  4. 생성된 파일을 클라이언트 시스템에 복사하고 업데이트합니다. PAConsumerConfig.yaml 인증서와 키에 대한 아래 경로를 포함하는 파일입니다.

    클라이언트 키는 DER 형식입니다.

    복사
    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