[comment]: # translation:outdated

[comment]: # ({f65323a6-f65323a6})
# 2 PostgreSQL-Verschlüsselungskonfiguration

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

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

Dieser Abschnitt enthält mehrere Beispiele für die Konfiguration der Verschlüsselung für
CentOS 8.2 und PostgreSQL 13.

::: noteclassic
 Die Verbindung zwischen dem Zabbix Frontend und PostgreSQL kann nicht
verschlüsselt werden (Parameter in der GUI sind deaktiviert), wenn der Wert des Feldes *Database
host* mit einem Schrägstrich beginnt oder das Feld leer ist. 
:::

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

[comment]: # ({5bd8b8ac-47df7706})
### Voraussetzungen

Installieren Sie die PostgreSQL-Datenbank über das [offizielle
Repository](https://www.postgresql.org/download/linux/redhat/).

PostgreSQL ist standardmäßig nicht so konfiguriert, dass TLS-Verbindungen akzeptiert werden.
Bitte folgen Sie den Anweisungen in der PostgreSQL-Dokumentation zur
[Zertifikatsvorbereitung mit
postgresql.conf](https://www.postgresql.org/docs/13/ssl-tcp.html) sowie
zur [Benutzerzugriffskontrolle](https://www.postgresql.org/docs/13/auth-pg-hba-conf.html)
über ph\_hba.conf.

Standardmäßig ist der PostgreSQL-Socket an localhost gebunden; damit
Remote-Verbindungen über das Netzwerk möglich sind, muss das Lauschen auf
der tatsächlichen Netzwerkschnittstelle erlaubt werden.

Die PostgreSQL-Einstellungen für alle
[Modi](/manual/appendix/install/db_encrypt#terminology) können wie folgt
aussehen:

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

Für die Zugriffskontrolle passen Sie */var/lib/pgsql/13/data/pg\_hba.conf* an:

    ...
    ### 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})
### Ausschließliche Transportverschlüsselung

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

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

Um eine reine Transportverschlüsselung für Verbindungen zwischen dem Zabbix-Frontend und der Datenbank zu aktivieren:

-   Aktivieren Sie *Database TLS encryption*
-   Lassen Sie *Verify database certificate* deaktiviert

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

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

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

Um für Verbindungen zwischen Server und Datenbank eine reine Transportverschlüsselung zu aktivieren, konfigurieren Sie */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})
### Verschlüsselung mit Verifizierung der Zertifizierungsstelle

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

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

So aktivieren Sie die Verschlüsselung mit Überprüfung der Zertifizierungsstelle für
Verbindungen zwischen dem Zabbix Frontend und der Datenbank:

-   Aktivieren Sie *Database TLS encryption* und *Verify database certificate*
-   Geben Sie den Pfad zur *Database TLS CA file* an

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

Alternativ kann dies in */etc/zabbix/web/zabbix.conf.php:* festgelegt werden:

    ...
    $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})
#### Server

Um die Verschlüsselung mit Zertifikatsprüfung für Verbindungen
zwischen dem Zabbix Server und der Datenbank zu aktivieren, konfigurieren Sie
*/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})
### Verschlüsselung mit vollständiger Verifizierung

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

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

Um Verschlüsselung mit Zertifikat und Überprüfung der Identität des Datenbank-Hosts
für Verbindungen zwischen Zabbix Frontend und der Datenbank zu aktivieren:

-   Aktivieren Sie *Database TLS encryption* und *Verify database certificate*
-   Geben Sie den Pfad zur *Database TLS key file* an
-   Geben Sie den Pfad zur *Database TLS CA file* an
-   Geben Sie den Pfad zur *Database TLS certificate file* an
-   Aktivieren Sie *Database host verification*

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

Alternativ kann dies in */etc/zabbix/web/zabbix.conf.php:* festgelegt werden:

    $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})
#### Server

Um die Verschlüsselung mit Zertifikat und die Überprüfung der Identität des Datenbank-Hosts für Verbindungen zwischen Zabbix-Server und der Datenbank zu aktivieren, konfigurieren Sie */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})
