[comment]: # translation:outdated

[comment]: # ({f65323a6-f65323a6})
# 2 Configuration du chiffrement PostgreSQL

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

[comment]: # ({63be0cfa-63be0cfa})
### Aperçu

Cette section fournit plusieurs exemples de configuration de chiffrement pour CentOS 8.2 et PostgreSQL 13.

::: noteclassic
  La connexion entre l'interface Zabbix et PostgreSQL ne peut pas être chiffrée (les paramètres dans l'interface graphique sont désactivés), si la valeur du champ *Hôte de la base de données* commence par une barre oblique ou si le champ est vide.
:::

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

[comment]: # ({5bd8b8ac-47df7706})
### Prérequis

Installez la base de données PostgreSQL en utilisant le [dépôt
officiel](https://www.postgresql.org/download/linux/redhat/).

Par défaut, PostgreSQL n'est pas configuré pour accepter les connexions TLS.
Veuillez suivre les instructions de la documentation PostgreSQL pour la
[préparation des certificats avec
postgresql.conf](https://www.postgresql.org/docs/13/ssl-tcp.html) ainsi
que pour le [contrôle d'accès des
utilisateurs](https://www.postgresql.org/docs/13/auth-pg-hba-conf.html)
via ph\_hba.conf.

Par défaut, le socket PostgreSQL est lié à localhost ; pour autoriser les
connexions réseau distantes, activez l'écoute sur l'interface réseau
réelle.

Les paramètres PostgreSQL pour tous les
[modes](/manual/appendix/install/db_encrypt#terminology) peuvent
ressembler à ceci :

**/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'
    ...

Pour le contrôle d'accès, ajustez */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]: # ({/5bd8b8ac-47df7706})

[comment]: # ({7b44fd81-fda36821})
### Chiffrement du transport uniquement

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

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

Pour activer le chiffrement de transport uniquement pour les connexions entre l'interface Zabbix et la base de données :

- Cochez *Cryptage TLS de la base de données*
- Laissez *Vérifier le certificat de la base de données* décoché

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

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

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

Pour activer le chiffrement de transport uniquement pour les connexions entre le serveur et la base de données, configurez */etc/zabbix/zabbix\_server.conf* :

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

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

[comment]: # ({68301bc1-ef3e06b2})
### Chiffrement avec vérification par autorité de certification

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

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

Pour activer le chiffrement avec vérification de l’autorité de certification pour
les connexions entre l’interface web Zabbix et la base de données :

-   Cochez *Database TLS encryption* et *Verify database certificate*
-   Indiquez le chemin vers *Database TLS CA file*

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

Il est également possible de le définir dans */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})
#### Serveur

Pour activer le chiffrement avec vérification de certificat pour les connexions entre le serveur Zabbix et la base de données, configurez */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]: # ({edf12bed-ef07b8a6})
### Chiffrement avec vérification complète

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

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

Pour activer le chiffrement avec certificat et vérification de l'identité de l'hôte de la base de données pour les connexions entre l'interface Zabbix et la base de données :

- Cochez *Cryptage TLS de la base de données* et *Vérifiez le certificat de la base de données*
- Spécifiez le chemin d'accès au *fichier de clé TLS de la base de données*
- Spécifiez le chemin d'accès au * fichier CA TLS de la base de données *
- Spécifiez le chemin d'accès au *fichier de certificat TLS de la base de données*
- Cochez * Vérification de l'hôte de la base de données *

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

Alternativement, cela peut être défini dans */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})
#### Serveur

Pour activer le chiffrement avec certificat et vérification de l'identité de l'hôte de la base de données pour les connexions entre le serveur Zabbix et la base de données, configurez */etc/zabbix/zabbix\_server.conf* :

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

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