When deployed, Certificate Manager adds the following database requirements.
Solution databases can be hosted on the same DBMS. However, do not merge tables from different solutions into a single database, as each solution requires a dedicated database.
Database management system
Certificate Manager supports the following Database Management Systems (DBMS).
DBMS | version |
|---|---|
PostgreSQL | 15+ |
Database storage
Calculate the required database storage based on the expected data.
Database platform
Check the DBMS documentation for the DBMS requirements on each platform. In the case of PostgreSQL, we recommend downloading the official Docker image:
https://hub.docker.com/_/postgres
If you are not using this Docker image, ensure that you install the following extensions.
Extension | Description |
|---|---|
lo | Large objects extension |
pg_trgm | Trigram matching for string search |
uuid-ossp | Universal unique ID generation |
To install the PostgreSQL extensions
- Run the following command on the server hosting the database.
sudo dnf install postgresql15-contrib - Connect to the database as a user with permissions to install extensions.
psql -d <db_name> -U <username> - Run the following SQL commands to install the extensions.
CREATEEXTENSION IFNOTEXISTS lo;CREATEEXTENSION IFNOTEXISTS pg_trgm;CREATEEXTENSION IFNOTEXISTS uuid-ossp; - Run the following SQL command to check that the extensions are installed.
SELECT*FROMpg_available_extensionsWHEREnameIN('lo','pg_trgm','uuid-ossp');
Database user permissions
The database user must have permissions on the public schema.
For example, to create a PostgreSQL database user with sufficient permissions, connect to PSQL using the default PostgreSQL user and execute the following commands.
CREATE USER ${POSTGRES_USER} WITH NOSUPERUSER CREATEDB ENCRYPTED PASSWORD '${POSTGRES_PWD}';\c postgres ${POSTGRES_USER}CREATE DATABASE mydb;\c mydb ${POSTGRES_USER}CREATE EXTENSION IF NOT EXISTS pg_trgm;Where:
${POSTGRES_USER}is the database user name.${POSTGRES_PWD}is the database user password.
Database allowed incoming connections
Restrict database incoming connections to only those originating from the Cryptographic Security Platform host.
To restrict incoming connections on a PostgreSQL database
Edit the following PostgreSQL configuration file.
pg_hba.confAdd the following line.
hostssl cm ${POSTGRES_USER} <host> scram-sha-256Where
<host>is the IP address of the Cryptographic Security Platform host.
Database supported number of connections
The Certificate Manager database must support 120 connections per cluster.
To calculate the number of connections your database must support, include those required by any installed solution. For PostgreSQL, set this final value as the max_connections parameter.
Database names
In the Certificate Manager database, names should not use uppercase letters to avoid case sensitivity problems. Unquoted identifiers in SQL syntax are converted to lowercase, which can cause issues when mapping to a name with uppercase letters.
Database TLS certificate
In TLS-protected connections with the database, the TLS certificate of the database must include the IP address or hostname Cryptographic Security Platform will use to connect with the database. You can alternatively:
- Set the hostname or IP address in the CN attribute of the certificate subject.
- Set the hostname in a SAN attribute of the
dNSNametype. - Set the IP address in a SAN attribute of the
iPAddresstype.
Entrust solutions in production mode should always be configured to enforce SSL-protected connections with the database.