Regenerating the agent SSL certificates
=======================================

..  Important::
   PEMは、証明書の有効期限が近づくと、デフォルトでこれらの手順を実行します。これらの手順は、PEM証明書とキーを手動で再生成する必要がある場合に、完全を期すために提供されています。

エージェント証明書とキーファイルを再生成する必要があります。

- PEMサーバー証明書が再生成された場合。

- PEMエージェント証明書の有効期限が間もなくエキスパイアと。

PEMサーバーと対話するエージェントごとに証明書とキーを再生成し、エージェントにコピーする必要があります。

各エージェントには、\ ``pem``
データベースのpem.agentテーブルに保存されている一意の識別子があります。証明書とキーファイルを、エージェントの識別子に対応する証明書またはキーファイルに置き換える必要があります。

前提条件

- PEMサーバーには証明書があります。

- ``ca_certificate.crt`` および\ ``ca_key.key``
  は、PEMバックエンドデータベースサーバーのデータディレクトリにあります。

- ``ca_certificate.crt`` は\ ``root.crt`` と同じです。

- ``ca_certificate.crt`` および\ ``ca_key.key``
  は、有効なSSL証明書とキーです。

PEMエージェント証明書とキーファイルペアを生成するには

1. psqlを使用して、エージェントの数とそれに対応する識別子を見つけます。

.. code:: shell

      # Running as enterprisedb
      psql -p 5444 -U enterprisedb -d pem --no-psqlrc -t -A -c "SELECT id FROM pem.agent WHERE active=true"

2. 実行中のすべてのPEMエージェントを停止します。

.. code:: shell

      # Running as root
      systemctl stop pemagent

Windowsでは、サービスアプレットを使用してPEMエージェントを停止します。
PEMエージェントサービスの名前はPostgres Enterprise Manager Agentです。 [
Services ]ダイアログボックスで、サービス名を選択し、[ **Stop the
service** ]を選択します。

3. 2.キーファイルを必要とするエージェントを特定した後、各エージェントに対して\ ``agent.key``
   を生成します。

.. code:: shell

       openssl genrsa -out agent<ID>.key 4096

``ID`` はエージェント識別子です。

4. 各エージェントの証明書署名要求CSRを生成します。

.. code:: shell

      openssl req -new -key agent<ID>.key -out agent<ID>.csr -subj /C=IN/ST=MH/L=Pune/O=PEM/CN=agent<ID>

``CN`` は\ ``agent<ID>`` です。

5. ``openssl x509``
   コマンドを使用してCSRに署名し、エージェント証明書を生成します。

.. code:: shell

      openssl x509 -req -days 365 -in agent<ID>.csr -CA ca_certificate.crt -CAkey ca_key.key -CAcreateserial -out agent<ID>.crt

``-req`` は、入力がCSRであることを示します。 ``-CA`` および\ ``-CAkey``
オプションは、CSRの署名に使用するルート証明書とプライベートキーを指定します。

次の証明書とキーファイルのペアを生成する前に、各PEMエージェントホストで手順2および4で生成された\ ``agent.key``
および\ ``agent.crt`` ファイルを移動します。

6. 新しい\ ``agent<ID>.crt`` および\ ``agent<ID>.key``
   ファイルのアクセス許可を変更します。

.. code:: shell

      chmod 600 agent<ID>.crt agent<ID>.key

7. 古いエージェント証明書とキーファイルをバックアップします。

.. code:: shell

      mkdir root/.pem/certs
      mv root/.pem/agent<ID>.* root/.pem/certs

8. 各エージェントの証明書とキーファイルを、新しく生成されたファイルに置き換えます。

.. code:: shell

      cp agent<ID>.key agent<ID>.crt root/.pem

9. PEMエージェントサービスを開始します。

- Linuxの場合

.. code:: shell

        # Running as root
        systemctl start pemagent

- Windowsの場合
  サービスアプレットを使用してPEMエージェントを起動します。
  PEMエージェントサービスの名前はPostgres Enterprise Manager Agentです。
  [ Services ]ダイアログボックスで、サービス名を選択し、[ **Start the
  service** ]を選択します。
