Fedora39 PostgreSQL 15.4 SSL/TLS による暗号化通信の設定方法

環境
# cat/etc/redhat-release
Fedora release 39 (Thirty Nine)
PostgreSQL 15.4

概要
PostgreSQL で SSL/TLS による暗号化通信の設定を有効にします。

操作方法
1証明書をコピーする

# cp /etc/pki/tls/certs/server.{crt,key} /var/lib/pgsql/data/

権限を付与する

# chown postgres:postgres /var/lib/pgsql/data/server.{crt,key}
# chmod 600 /var/lib/pgsql/data/server.{crt,key}

2.SSL/TLS の設定を行います

# 105行目 : コメント解除して変更

修正前
#ssl=off

修正後
ssl = on

# 107, 110行目 : コメント解除して作成した証明書に変更する

#ssl_ca_file = ''
ssl_cert_file = 'server.crt'
#ssl_crl_file = ''
#ssl_crl_dir = ''
ssl_key_file = 'server.key'

3.アクセス元や認証方式の設定を行います
# vi /var/lib/pgsql/data/pg_hba.conf
最終行に追記

# [hostssl] ⇒ SSL/TLS 使用時のみ TCP/IP ネットワークを使用する
# [192.168.0.0/24] ⇒ アクセス許可するネットワーク
# [scram-sha-256] ⇒ scram-sha-256 パスワード認証を使用する
hostssl all all 192.168.0.0/24 scram-sha-256

postgresqlを再起動します
# systemctl restart postgresql

4.動作確認
1).ドメインソケット接続は通常通り

$ psql testdb
psql (15.4)
Type "help" for help.

2).# 宛先ホストを指定した TCP/IP 接続は設定通り SSL/TLS 接続する
# SSL/TLS 接続時は以下のように [SSL connection ***] と表示される

$ psql -h www.ark.com testdb
Password for user fedora:
psql (15.4)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

testdb=> \q

3).他ホストからの TCP/IP 接続も SSL/TLS 接続する

# psql -h www.arkgame.com -d testdb -U fedora
Password for user fedora:
psql (15.4)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

testdb=>

 

Fedora 39

Posted by arkgame