Configuring SSL authentication on a Failover Manager cluster#
フェールオーバーマネージャーのSSL認証を有効にできます。接続するすべてのクライアントは、クラスター内のデータベースサーバーに接続するときにSSL認証を使用する必要があります。既存のクライアントが現在使用している接続方法を変更する必要があります。
フェールオーバーマネージャークラスターでSSLを有効にするには
server.crtおよびserver.keyファイルをEDB Postgres Advanced Serverインストールの下のdataディレクトリに配置します。当局によって署名された証明書を購入するか、独自の自己署名証明書を作成できます。自己署名証明書の作成については、 PostgreSQL core documentation を参照してください。フェールオーバーマネージャークラスター内の各データベースの
postgresql.confファイルを変更し、SSLを有効にします。
ssl=on
postgresql.conf
ファイルを変更した後、サーバーを再起動する必要があります。
フェールオーバーマネージャークラスターの各ノードで
pg_hba.confファイルを変更し、ファイルの先頭に次の行を追加します。
hostnossl all all all reject
この行は、SSL認証を使用していない接続を拒否するようにサーバーに指示します。これにより、接続するクライアントにSSL認証が強制されます。
pg_hba.conf ファイルの変更については、
PostgreSQL core documentation を参照してください。
server.crtおよびserver.keyファイルをデータディレクトリに配置した後、証明書をJavaが理解できる形式に変換します。次のコマンドを使用できます。
openssl x509 -in server.crt -out server.crt.der -outform der
詳細については、 Postgres JDBC documentation を参照してください。
証明書をJavaの信頼できる証明書ファイルに追加します。
keytool -keystore $JAVA_HOME/lib/security/cacerts -alias <alias_name> -import -file server.crt.der
$JAVA_HOME は、Javaインストールのホームディレクトリです。
alias_name
には任意の文字列を指定できますが、証明書ごとに一意である必要があります。
keytool
コマンドを使用して、使用可能な証明書のリストを確認したり、特定の証明書に関する情報を取得したりできます。
keytool コマンドの使用の詳細については、次を入力してください。
man keytool
各データベースサーバーからの証明書は、各エージェントの信頼できる証明書ファイルにインポートする必要があります。
cacerts
ファイルの場所は、システムごとに異なる場合があります。詳細については、
Postgres JDBC documentation を参照してください。
クラスター内の各ノードで efm.properties file を変更し、
jdbc.sslmodeプロパティを設定します。