When deployed, Certificate Enrollment Gateway 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 Enrollment Gateway supports the following Database Management Systems (DBMS).
DBMS | version |
|---|---|
PostgreSQL | 15+ |
Microsoft SQL Server | 2019+ |
2022+ |
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 Enrollment Gateway database must support 10 connections per node.
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 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.