Configuring SSL Authentication on a Failover Manager Cluster

次の手順では、|Failover ManagerのSSL認証を有効にします。接続するすべてのクライアントは、クラスター内のデータベースサーバーに接続するときにSSL認証を使用する必要があることに注意してください。既存のクライアントが現在使用している接続方法を変更する必要があります。

|Failover ManagerでSSLを有効にするにはクラスターでは、以下を行う必要があります。

  1. server.crt および server.key ファイルを data ディレクトリに配置します(AdvancedServerのインストール下)。機関によって署名された証明書を購入するか、独自の自己署名証明書を作成できます。自己署名証明書の作成については、次のPostgreSQLコアドキュメントを参照してください。

    https://www.postgresql.org/docs/10/static/ssl-tcp.html#ssl-certificate-creation

  2. フェールオーバーマネージャークラスター内の各データベースで postgresql.conf ファイルを変更し、SSLを有効にします。

    ssl=on

    postgresql.confファイルを変更した後、サーバーを再起動する必要があります。

  3. |Failover Managerの各ノードで pg_hba.conf ファイルを変更しますクラスター、ファイルの先頭に次の行を追加します。

    hostnossl all all all reject

    この行は、SSL認証を使用していない接続を拒否するようサーバーに指示します。これにより、接続しているクライアントにSSL認証が強制されます。pg_hba.confファイルの変更については、次のPostgreSQLコアドキュメントを参照してください。

    https://www.postgresql.org/docs/10/static/auth-pg-hba-conf.html

  4. server.crtおよびserver.keyファイルをデータディレクトリに配置した後、証明書をJavaが理解できる形式に変換します。次のコマンドを使用できます。

    openssl x509 -in server.crt -out server.crt.der -outform der

    詳細については、次をご覧ください。

https://jdbc.postgresql.org/documentation/94/ssl-client.html

  1. 次に、証明書をJava信頼証明書ファイルに追加します。

    keytool -keystore $JAVA_HOME/lib/security/cacerts -alias <alias_name> -import -file server.crt.der

    場所

    $JAVA_HOME は、Javaインストールのホームディレクトリです。

    <エイリアス名>には任意の文字列を使用できますが、証明書ごとに一意である必要があります。

    keytool コマンドを使用して、使用可能な証明書のリストを確認したり、特定の証明書に関する情報を取得したりできます。keytoolコマンドの使用の詳細については、次を入力してください。

    man keytool

    各データベースサーバーからの証明書は、各エージェントの信頼できる証明書ファイルにインポートする必要があります。cacertsファイルの場所は、システムごとに異なる場合があることに注意してください。詳細については、次をご覧ください。

https://jdbc.postgresql.org/documentation/94/ssl-client.html

  1. クラスター内の各ノードで efm.propertiesファイル<jdbc.sslmode>`を変更し、 ``jdbc.sslmode` プロパティを設定します。