[comment]: # translation:outdated

[comment]: # ({ebfc3dbc-ebfc3dbc})
# 2 Configuración de cifrado en PostgreSQL
[comment]: # (tags: ssl)

[comment]: # ({/ebfc3dbc-ebfc3dbc})

[comment]: # ({63be0cfa-63be0cfa})
### Descripción general

Esta sección proporciona varios ejemplos de configuración de cifrado para
CentOS 8.2 y PostgreSQL 13.

::: noteclassic
 La conexión entre la interfaz de Zabbix y PostgreSQL no se puede
cifrar (los parámetros en la GUI están deshabilitados), si el valor de *Equipo de Base de datos* comienza con una barra o el campo está vacío.
:::

[comment]: # ({/63be0cfa-63be0cfa})

[comment]: # ({47df7706-47df7706})
### Requisitos previos

Instale la base de datos PostgreSQL usando el [repositorio oficial
](https://www.postgresql.org/download/linux/redhat/).

PostgreSQL no está configurado para aceptar conexiones TLS de forma predeterminada.
Siga las instrucciones de la documentación de PostgreSQL para la 
[preparación de certificados con
postgresql.conf](https://www.postgresql.org/docs/13/ssl-tcp.html) y
también para el [control de acceso de usuario
](https://www.postgresql.org/docs/13/auth-pg-hba-conf.html)
a través de ph\_hba.conf.

De forma predeterminada, el socket PostgreSQL está vinculado al equipo local, por lo que
las conexiones remotas de red permiten escuchar en la interfaz de red real.

Las configuraciones de PostgreSQL para todos
[modos](/manual/appendix/install/db_encrypt#terminology) pueden verse así:

**/var/lib/pgsql/13/data/postgresql.conf:**

    ...
    ssl = on
    ssl_ca_file = 'root.crt'
    ssl_cert_file = 'server.crt'
    ssl_key_file = 'server.key'
    ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL'
    ssl_prefer_server_ciphers = on
    ssl_min_protocol_version = 'TLSv1.3'
    ...

Para el control de acceso ajuste */var/lib/pgsql/13/data/pg\_hba.conf*:

    ...
    ### require
    hostssl all all 0.0.0.0/0 md5

    ### verify CA
    hostssl all all 0.0.0.0/0 md5 clientcert=verify-ca

    ### verify full
    hostssl all all 0.0.0.0/0 md5 clientcert=verify-full
    ...

[comment]: # ({/47df7706-47df7706})

[comment]: # ({fda36821-fda36821})
### Modo requerido

[comment]: # ({/fda36821-fda36821})

[comment]: # ({3c0e876a-3c0e876a})
#### Interfaz

Para habilitar el cifrado de solo el transporte para conexiones entre la interfaz de Zabbix
y la base de datos:

- Marque *Cifrado TLS de la base de datos*
- Deje *Verificar certificado de base de datos* sin marcar

![](../../../../../assets/en/manual/appendix/install/encrypt_db_transport.png){width="600"}

[comment]: # ({/3c0e876a-3c0e876a})

[comment]: # ({99c0e65b-99c0e65b})
#### Servidor

Para habilitar el cifrado de solo transporte para las conexiones entre el servidor y
la base de datos, configure */etc/zabbix/zabbix\_server.conf*:

    ...
    DBHost=10.211.55.9
    DBName=zabbix
    DBUser=zbx_srv
    DBPassword=<strong_password>
    DBTLSConnect=required
    ...

[comment]: # ({/99c0e65b-99c0e65b})

[comment]: # ({ef3e06b2-ef3e06b2})
### Modo de verificación de CA

[comment]: # ({/ef3e06b2-ef3e06b2})

[comment]: # ({ebbac498-e8c8dbd8})
#### Interfaz

Para habilitar el cifrado con verificación de la autoridad certificadora para las
conexiones entre la interfaz de Zabbix y la base de datos:

-   Verifique *Cifrado TLS de base de datos* y *Verificar certificado de base de datos*
-   Especifique la ruta al *archivo CA TLS de base de datos*

![](../../../../../assets/en/manual/appendix/install/encrypt_db_verify_ca2.png){width="600"}

Alternativamente, esto se puede configurar en */etc/zabbix/web/zabbix.conf.php:*

    ...
    $DB['ENCRYPTION'] = true;
    $DB['KEY_FILE'] = '';
    $DB['CERT_FILE'] = '';
    $DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
    $DB['VERIFY_HOST'] = false;
    $DB['CIPHER_LIST'] = '';
    ...

[comment]: # ({/ebbac498-e8c8dbd8})

[comment]: # ({bbddedec-bbddedec})
#### Servidor

Para habilitar el cifrado con verificación de certificado para conexiones
entre el servidor Zabbix y la base de datos, configure
*/etc/zabbix/zabbix\_server.conf:*:

    ...
    DBHost=10.211.55.9
    DBName=zabbix
    DBUser=zbx_srv
    DBPassword=<strong_password>
    DBTLSConnect=verify_ca
    DBTLSCAFile=/etc/ssl/pgsql/root.crt
    ...

[comment]: # ({/bbddedec-bbddedec})

[comment]: # ({ef07b8a6-ef07b8a6})
### Modo de verificación completa

[comment]: # ({/ef07b8a6-ef07b8a6})

[comment]: # ({83615cf7-83615cf7})
#### Interfaz

Para habilitar el cifrado con certificado y la verificación de identidad del equipo de 
la base de datos para las conexiones entre la interfaz de Zabbix y la base de datos:

-   Verifique *Cifrado TLS de base de datos* y *Verificar certificado de base de datos*
-   Especifique la ruta al *archivo de clave TLS de la base de datos*
-   Especifique la ruta al *archivo CA TLS de base de datos*
-   Especifique la ruta al *archivo de certificado TLS de base de datos*
-   Marque *Verificación del equipo de la base de datos*

![](../../../../../assets/en/manual/appendix/install/encrypt_db_verify_full2.png){width="600"}

Alternativamente, esto se puede configurar en */etc/zabbix/web/zabbix.conf.php:*

    $DB['ENCRYPTION'] = true;
    $DB['KEY_FILE'] = '';
    $DB['CERT_FILE'] = '';
    $DB['CA_FILE'] = '/etc/ssl/pgsql/root.crt';
    $DB['VERIFY_HOST'] = true;
    $DB['CIPHER_LIST'] = '';
    ...

[comment]: # ({/83615cf7-83615cf7})

[comment]: # ({61b8c8f3-61b8c8f3})
#### Servidor

Para habilitar el cifrado con certificado y verificación de la  identidad del equipo de la 
base de datos para conexiones entre el servidor Zabbix y la base de datos,
configure */etc/zabbix/zabbix\_server.conf*:

    ...
    DBHost=10.211.55.9
    DBName=zabbix
    DBUser=zbx_srv
    DBPassword=<contraseña_fuerte>
    DBTLSConnect=verify_full
    DBTLSCAFile=/etc/ssl/pgsql/root.crt
    DBTLSCertFile=/etc/ssl/pgsql/client.crt
    DBTLSKeyFile=/etc/ssl/pgsql/client.key
    ...

[comment]: # ({/61b8c8f3-61b8c8f3})
