SSL Certificates
================

``config.yml`` で\ ``enable_pg_backup_api: true``
を設定するか、configure中に\ ``--enable-pg-backup-api``
コマンドラインオプションを使用すると、\ ``barman``
ロールを持つインスタンスはpg-backup-apiをインストールし、クライアント証明書認証用にApacheプロキシを設定します。このApacheプロキシは、クラスター用に生成されたSSL
CAを使用して、サーバーとクライアントの証明書を生成します。

.. code:: yaml

   cluster_vars:
     enable_pg_backup_api: true

PG Backup APIパッケージバージョン
---------------------------------

デフォルトでは、TPAはpg-backup-apiの利用可能な最新バージョンをインストールします。

``config.yml`` ファイルの\ ``cluster_vars``
セクションの下の\ ``pg_backup_api_package_version: xxx``
を含めることにより、インストールされるpg-backup-apiパッケージのバージョンを指定できます。

.. code:: yaml

   cluster_vars:
       …
       pg_backup_api_package_version: 2.0.0-1.el8
       …

aptまたはyumが受け入れるバージョン指定子を使用できます。

バージョンが一致しない場合は、 ``*``
ワイルドカードを追加してみてください。これは、パッケージバージョンに\ ``2:...``
のようなエポック修飾子がある場合に必要になることがよくあります。

pg-backup-apiは、デフォルトでパッケージを介してインストールされますが、gitブランチまたはローカルディレクトリからインストールすることもできます。詳細については、
:ref:`Building from source <Building from source>` および :ref:`ソースからのビルドとインストール <ソースからのビルドとインストール>` を参照してください。

pg-backup-apiを実行しているbarmanノードで\ ``pg-backup-api status``
を実行します。「OK」が返された場合、pg-backup-apiサービスが実行されています。

プロキシが動作していることをテストするには、次のコマンドを実行します。

.. code:: shell

   curl --cert /etc/tpa/pg-backup-api/pg-backup-user.crt \
        --key /etc/tpa/pg-backup-api/pg-backup-user.key \
        -X GET https://{hostname}/diagnose

機能している場合は、大規模なjson出力を取得します。これを\ ``barman diagnose``
の出力と比較できます。それらは正確に一致するはずです。

ルート証明書は、デフォルトで\ ``/etc/tpa/pg-backup-api/``
にコピーされます。

クライアント証明書とキー ``pg-backup-user.crt``
および\ ``pg-backup-user.key`` は、テストのために生成されます
``tpaexec test`` を介してまたはbarmanホストからのコマンドライン。
:ref:`tpaexec test <tpaexec test>` を参照してください。

Apacheプロキシサーバーの証明書とキー\ ``pg-backup-api.crt``
および\ ``pg-backup-api.key`` も生成されます

APIを照会する必要がある各サービスは、独自のクライアント証明書を個別に生成する必要があります。たとえば、PEMエージェントロールは、\ ``--enable-pem``
および\ ``--enable-pg-backup-api``
またはconfig.yml同等の両方が使用される場合、セットアップ中にクライアント証明書を生成します。
