[comment]: # translation:outdated

[comment]: # ({ebfc3dbc-ebfc3dbc})
# 2 PostgreSQLの暗号化設定
[comment]: # (tags: ssl)

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

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

このセクションでは、CentOS8.2およびPostgreSQL13の暗号化設定例をいくつか示します。

::: noteclassic
*Database host*フィールドの値がスラッシュで始まるか、空の場合、ZabbixフロントエンドとPostgreSQL間の接続を暗号化できません（GUIのパラメーターが無効になっています）
:::

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

[comment]: # ({47df7706-47df7706})
### 前提条件

[公式リポジトリ](https://www.postgresql.org/download/linux/redhat/)を使用してPostgreSQLデータベースをインストールします。

PostgreSQLは、すぐにTLS接続を受け入れるように構成されていません。[postgresql.confを使用した証明書の準備](https://www.postgresql.org/docs/13/ssl-tcp.html)およびph\_hba.confを介した[ユーザーアクセス制御](https://www.postgresql.org/docs/13/auth-pg-hba-conf.html)については、PostgreSQLのドキュメントの指示に従ってください。

デフォルトでは、PostgreSQLソケットはローカルホストにバインドされています。これは、ネットワークリモート接続が実際のネットワークインターフェイスでリッスンできるようにするためです。

すべての[モード](/manual/appendix/install/db_encrypt#terminology) のPostgreSQL設定は次のようになります。

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

アクセス制御については*/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]: # ({7b44fd81-fda36821})
### トランスポートのみの暗号化

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

[comment]: # ({3c0e876a-3c0e876a})
#### フロントエンド

Zabbixフロントエンドとデータベース間の接続でトランスポートのみの暗号化を有効にするには:

- *データベースのTLS暗号化*をチェックします
- *データベース証明書の確認*はチェックしません

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

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

[comment]: # ({99c0e65b-99c0e65b})
#### サーバー

サーバーとデータベース間の接続に対してトランスポートのみの暗号化を有効にするには*/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})
### 認証局検証による暗号化

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

[comment]: # ({ebbac498-e8c8dbd8})
#### フロントエンド

Zabbixフロントエンドとデータベース間の接続の認証局検証による暗号化を有効にするには:

-   *データベースTLS暗号化*と*データベース証明書の確認*をチェック
-   *データベースTLS CAファイル*へのパスを指定

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

または、これは*/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})
#### サーバー

Zabbixサーバーとデータベース間の接続の証明書検証による暗号化を有効にするには、*/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})
### 完全な検証を伴う暗号化

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

[comment]: # ({83615cf7-83615cf7})
#### フロントエンド

Zabbixフロントエンドとデータベース間接続の証明書とデータベースホストID検証による暗号化を有効にするには：

-  *データベースTLS暗号化*と*データベース証明書の確認*をチェック
-  *データベースTLSキーファイル*へのパスを指定
-  *データベースTLSCAファイル*へのパスを指定
-  *データベースTLS証明書ファイル*へのパスを指定
-  *データベースホストの検証*をチェック

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

または*/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})
#### サーバー

Zabbixサーバーとデータベース間の接続の証明書とデータベースホストID検証による暗号化を有効にするには*/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})
