Red Hat Training
A Red Hat training course is available for Red Hat Satellite
4.3. PostgreSQL データベースが SSL を使用するように設定する
デフォルトで、Satellite は最初に暗号化されていない通信によって PostgreSQL データベースに接続します。しかし、データベースの接続で SSL を使用するように設定することもできます。SSL 接続では Satellite とデータベース間の通信が暗号化されるので、広域ネットワークで管理データベースまたは外部データベースを使用している場合は有利になります。
Satellite Server と PosgreSQL データベースサーバー間の SSL 通信を有効にするには、以下の手順を実行します。
前提条件
Satellite Server と PosgreSQL データベースサーバー間の通信を有効にするには、以下が必要になります。これらのファイルを作成する方法については、使用する認証機関のドキュメントを参照してください。
- 認証機関により署名された Satellite Server 向けの証明書ファイル。以下の手順では、ファイル名のサンプルは
server.crt
です。 - 証明書の署名に使用した秘密鍵。以下の手順ではサンプルファイル名は
server.key
です。 - 証明書が署名された認証機関の証明書。以下の手順では、サンプルファイル名は
root-ca.cert
です。
すべての Satellite サービスを停止してからデータベースで SSL を使用するように設定します。
[root@satellite ~]# spacewalk-service stop
手順4.1 データベースサーバーでの SSL 設定
root
でデータベースサーバーにログインします。- 署名済み証明書と秘密鍵をデータベースサーバーの所定の場所にコピーします。
[root@database~]# cp server.{key,crt} /var/opt/rh/rh-postgresql95/lib/pgsql/data/. [root@database~]# chown postgres:postgres /var/opt/rh/rh-postgresql95/lib/pgsql/data/server.{key,crt} [root@database~]# chmod 0400 /var/opt/rh/rh-postgresql95/lib/pgsql/data/server.key
postgresql.conf
ファイルを編集し、以下のオプションを追加します。ssl=on
pg_hba.conf
ファイルを編集します。このファイルは、データベースへのアクセスを制限するパーミッションファイルです。以下のような行を見つけます。host mydb mydbuser 192.168.122.0/24 md5
この行には、データベース名、データベースユーザー、および接続を可能にする IP アドレスまたは範囲が含まれます。host
オプションをhostssl
に変更します。hostssl mydb mydbuser 192.168.122.0/24 md5
この変更により、着信の通信プロトコルが SSL を使用するようになり、暗号化されていない PostgreSQL 接続が拒否されるようになります。rh-postgresql95-postgresql
サービスを再起動し、変更を有効にします。[root@database~]# service rh-postgresql95-postgresql restart
これでデータベースサーバーは、SSL を使用するクライアントからの接続のみを受け入れます。次の手順では、Satellite Server が SSL を使用してデータベースと通信するように設定します。
手順4.2 Satellite Server での SSL 設定
root
で Satellite Server にログインします。root-ca.cert
証明書をコピーします。[root@satellite ~]# cp root-ca.cert /etc/rhn/postgresql-db-root-ca.cert
/etc/rhn/rhn.conf
ファイルを編集して以下のオプションを追加します。db_ssl_enabled = 1
- 証明書を Satellite の Java web サーバーのキーストアに追加します。
[root@satellite ~]# openssl x509 -in /etc/rhn/postgresql-db-root-ca.cert -out server.der -outform der [root@satellite ~]# keytool -keystore /etc/rhn/javatruststore.jks -alias postgresql -import -file server.der [root@satellite ~]# rm server.der
重要
キーストアに変更を加えるには、/etc/rhn/javatruststore.jks
でパスワードが必要です。必要な場合は、以下のコマンドを使用してこのパスワードを変更します。[root@satellite ~]# keytool -storepasswd -keystore /etc/rhn/javatruststore.jks
- 新たな証明書ファイルの SELinux コンテキストを復元します。
[root@satellite ~]# restorecon -R -F -v /etc/rhn/
- Satellite サービスを起動します。
[root@satellite ~]# spacewalk-service start
これで Satellite サーバーは SSL を使用してデータベースと通信するようになります。