Enable SSL for Databases
Optionally, you can enable Transport Layer Security (TLS), commonly known as SSL, access between the Trifacta Application, its services, and the Alteryx databases.
Tip
SSL can be applied to any supported database distribution.
Note
This configuration applies only to the databases that are used to store metadata for the Designer Cloud Powered by Trifacta platform. For more information on enabling SSL for external JDBC connections, see Configure Security for Relational Connections.
Install SSL Certificate
Before you enable SSL for the Alteryx databases, you must deploy a security certificate on the Trifacta node. The certificate must be installed on theTrifacta node, whether the databases are installed locally or remotely.
Note
Please retain the location of the certificate on the server, as well as other information listed in the sections below.
Note
If you receive a org.postgresql.util.PSQLException: Could not read SSL key file
error message when connecting via SSL to your PostgreSQL databases, you may need to convert your certificate to DER format and re-install. For more information, see https://www.enterprisedb.com/postgres-tutorials/how-enable-ssl-authentication-edb-postgres-advanced-server.
If SSL is in use for access to the Trifacta Application, you can use the same SSL certificate for the databases. For more information, see Install SSL Certificate.
You can also use a separate certificate for the databases, if desired.
Enable
To enable use of SSL to connect to the platform databases, please complete the following.
Steps:
You can apply this change through the Admin Settings Page (recommended) or
trifacta-conf.json
. For more information, see Platform Configuration Methods.Locate the following setting, and set it to
true
:"webapp.database.ssl.enabled": true,
Do not save your changes yet.
Configure for Certificate
After the SSL certificate has been deployed to the server, please complete the following steps to configure use of the certificate by the Trifacta Application.
Steps:
You can apply this change through the Admin Settings Page (recommended) or
trifacta-conf.json
. For more information, see Platform Configuration Methods.Locate the following settings and set them accordingly:
"webapp": { "database": { "ssl": { "rejectUnauthorized": true, "serverCertificateAuthorityFile": "/path/to/caFile", "clientKeyFile": "/path/to/keyFile", "clientCertificateFile": "/path/to/certFile" } } }
Setting
Description
rejectUnauthorized
(optional) Set this value to
true
to reject access by any client that is presenting an invalid server certificate.serverCertificateAuthorityFile
(optional) Path on the Trifacta node to the certificate authority verification file, which is used to verify the presented server certificate.
clientKeyFile
(optional) Path on theTrifacta node to the client key file, which is used for client authentication.
clientCertificateFile
(optional) Path on the Trifacta node to the SSL certificate to use for client authentication.
Save your changes and restart the platform.
Configure Databases for SSL
After you have enabled the use of SSL in the platform, you must configure each Alteryx database to use secure access.
Steps:
To enable SSL on individual databases, you must apply the appropriate configuration settings as additionalConnectionProperties
for the database.
You can apply this change through the Admin Settings Page (recommended) or
trifacta-conf.json
. For more information, see Platform Configuration Methods.Tip
Although you can apply these changes through
trifacta-conf.json
, it may be easier to apply through the Admin Settings page in the Trifacta Application if it is available.Search for the following string:
database.additionalConnectionProperties
For each of the above settings, you must add the following text string(s) containing key-value pairs to the
additionalConnectionProperties
, based on your database distribution, for each listed service database:Note
Key-value pairs must be separated by an ampersand (
&
). See Configuration Examples below.Designer Cloud Powered by Trifacta platform setting and value
PostgreSQL
MySQL
"webapp.database.ssl.enabled": true,
ssl=true
requireSSL=true
"webapp.database.ssl.rejectUnauthorized": true,
sslmode=require
verifyServerCertificate=true
"webapp.database.ssl.serverCertificateAuthorityFile": "/path/to/caFile",
sslrootcert=/path/to/caFile
trustCertificateKeyStoreUrl=file:/path/to/truststore&trustCertificateKeyStorePassword=<password>
"webapp.database.ssl.clientKeyFile": "/path/to/keyFile",
sslkey=/path/to/keyFile
clientCertificateKeyStoreUrl=file:/path/to/truststore&clientCertificateKeyStorePassword=<password>
"webapp.database.ssl.clientCertificateFile": "/path/to/certFile",
sslcert=/path/to/certFile
Apply the values based on your configuration example below.
Configuration Example - Minimal SSL configuration
For minimal SSL configuration, the configuration that you performed above look like the following:
"webapp": { "database": { "ssl": { "enabled": true, "rejectUnauthorized": true, "serverCertificateAuthorityFile": "", "clientKeyFile": "", "clientCertificateFile": "" } } }
PostgreSQL:
"<service>.database.additionalConnectionProperties": "ssl=true&sslmode=require",
MySQL:
"<service>.database.additionalConnectionProperties": "requireSSL=true&verifyServerCertificate=true",
Configuration Example - SSL with Client Authentication
If you have deployed a client key and certificate for authentication, your configuration may look like the following:
"webapp": { "database": { "ssl": { "enabled": true, "rejectUnauthorized": true, "serverCertificateAuthorityFile": "", "clientKeyFile": "/path/to/keyFile", "clientCertificateFile": "/path/to/certFile" } } }
PostgreSQL:
"<service>.database.additionalConnectionProperties": "ssl=true&sslmode=require&sslkey=/path/to/keyFile&sslcert=/path/to/certFile",
MySQL:
"<service>.database.additionalConnectionProperties": "requireSSL=true&verifyServerCertificate=true&clientCertificateKeyStoreUrl=file:/path/to/truststore&clientCertificateKeyStorePassword=<password>",
Configuration Example - SSL with a custom certificate
If you have deployed a custom SSL certificate on the Trifacta node, your configuration may look like the following. For more information, see Install SSL Certificate.
"webapp": { "database": { "ssl": { "enabled": true, "rejectUnauthorized": true, "serverCertificateAuthorityFile": "/path/to/caFile", "clientKeyFile": "", "clientCertificateFile": "" } } }
PostgreSQL:
"<service>.database.additionalConnectionProperties": "ssl=true&sslmode=require&sslrootcert=/path/to/caFile",
MySQL:
"<service>.database.additionalConnectionProperties": "requireSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:/path/to/truststore&trustCertificateKeyStorePassword=<password>",
Use
When SSL is enabled and configured, users of the Designer Cloud Powered by Trifacta platform automatically connect to the database using SSL.
Note
There may be a small performance cost to using SSL.