Enabling TLS server certificate validation between internal PostgreSQL database and product components
The internal PostgreSQL database communicates with the following components of TrueSight Capacity Optimization:
- Application Server
- Local ETL Engine Server
Before you begin
Ensure that you use the supported database version. For more information, see Software requirements.
To enable TLS 1.2 with server certificate validation, complete the following steps:
If you have installed the Application Server components on multiple computers, repeat steps II and III on each computer.
I. Procure and copy the PostgreSQL server security certificate
Procure the PostgreSQL database server certificate (in the x509 format) from the system administrator of your organization if a self-signed certificate is used. For example, postgres.crt. If a certificate that is signed for PostgreSQL by an enterprise certificate authority (CA) or a third-party CA is used, import this signed certificate to avoid importing of multiple certificates signed by the same authority for all TLS connections.
Save the procured certificate file in the following locations:
Component Location Application Server <Application Server Installation Directory>/secure Local ETL Engine Server <Local ETL Engine Server Installation Directory>/secure
II. Install the security certificate
The Application Server and local ETL Engine Server use the cotruststore.ts truststore to communicate with the PostgreSQL database. This truststore is bundled along with the Server installation, and is located in the <Server Installation Directory>/secure directory.
Complete the following steps on both the Application Server and the local ETL Engine Server to import the security certificate into their truststore files:
Log on to the computer where the Server is installed. The keytool utility that is used to import the certificates is present in the <Server Installation Directory>/jre/bin directory. Add this directory path to the PATH environment variable by running the following command:
export PATH=<Server Installation Directory>/jre/bin:$PATH
Go to <Server Installation Directory>/secure directory and import the procured certificates by running the following command:
keytool -importcert -trustcacerts -file <path>/postgres.crt -keystore cotruststore.ts -alias CODB
When you are prompted, enter the password to access the keystore.
When you are prompted to trust the certificate, enter Yes.
The certificate is imported in the truststore.
III. Configure the components to enable TLS
Complete the following configuration steps on both the Application Server and the local ETL Engine Server:
- Navigate to the <Server Installation Directory>/tools directory and run the switchTLSmode.pl script.
#Example switchTLSmode.pl -on –dbport 2484 -tspwd -flow codb
#Syntax switchTLSmode.pl [-h or --help] [ -on|-off ] [ -dbport port ] [ -tspwd ] [-flow internal,auth,codb,externaldb,all]
-h or --help: Prints the help for the command.
-on|off: on option enables TLS mode of communication. off option disables TLS mode of communication.
-dbport: Provide the port number that is configured for the database communication. (This option is required only when the database port is changed.)
-tspwd: Provide the truststore password. The default password is: changeit. It is recommended to change this password.
-flow: Provide the communication channel for which you want to enable or disable TLS 1.2 with server certificate validation based on your value for the -on|off parameter.
internal: Enables or disables TLS 1.2 with server certificate validation for communication among the internal Capacity Optimization components.
auth: Enables or disables TLS 1.2 with server certificate validation for communication between the authentication component (Remedy Single Sign-On Server or LDAP server) and Application Server.
codb: Enables or disables TLS 1.2 with server certificate validation for communication between internal database (Oracle/PostgreSQL) and internal Capacity Optimization components.
externaldb: Enables or disables TLS 1.2 with server certificate validation for communication between external database and ETL Engine Server.
all: Enables or disables TLS 1.2 with server certificate validation communication for all the supported channels.
2. When you are prompted, enter the password to access the truststore.
The communication between the internal PostgreSQL database and the Application Server, and between the internal PostgreSQL database and local ETL Engine Server are now TLS 1.2 enabled with server certificate validation.