Ubuntu 18.04
Sponsored Link

PostgreSQL : SSL/TLS の設定2018/06/25

 
PostgreSQL で SSL/TLS による暗号化通信の設定を有効にします。
[1]
こちらを参考に SSL 証明書を取得しておきます
当例では、SSL 証明書はリンク先の例のように [/etc/letsencrypt/live/dlp.srv.world] 配下に取得しているとし、[Common Name] には [dlp.srv.world] を設定しているものとして進めます。
[2] 作成した証明書をコピーして SSL/TLS の設定をします。
root@dlp:~#
cp /etc/letsencrypt/live/dlp.srv.world/* /etc/postgresql/10/main/

root@dlp:~#
chown postgres. /etc/postgresql/10/main/*.pem

root@dlp:~#
chmod 600 /etc/postgresql/10/main/*.pem

root@dlp:~#
vi /etc/postgresql/10/main/postgresql.conf
# 79行目:変更

ssl =
on
# 84行目:変更

ssl_cert_file = '
/etc/postgresql/10/main/cert.pem
'
ssl_key_file = '
/etc/postgresql/10/main/privkey.pem
'
ssl_ca_file = '
/etc/postgresql/10/main/chain.pem
'
root@dlp:~#
vi /etc/postgresql/10/main/pg_hba.conf
# 92行目:下記のように変更

# ローカルホストからの認証済みユーザー以外からの接続は全てSSL/TLS接続とする

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
#host    all             all             127.0.0.1/32            md5
hostssl all             all             127.0.0.1/32            md5
hostssl all             all             10.0.0.0/24             md5
hostssl all             all             ::1/128                 md5

root@dlp:~#
systemctl restart postgresql
# 接続確認

# ローカルホストからの認証済み接続は通常通り

ubuntu@dlp:~$
psql testdb

psql (10.4 (Ubuntu 10.4-0ubuntu0.18.04))
Type "help" for help.

testdb=>

# 上記以外の場合は SSL/TLS 接続

ubuntu@dlp:~$
psql "user=ubuntu host=localhost dbname=testdb"

Password:
psql (10.4 (Ubuntu 10.4-0ubuntu0.18.04))
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

testdb=>

# 他ホストからの接続も SSL/TLS 接続

ubuntu@node01:~$
psql "host=dlp.srv.world dbname=testdb"

Password:
psql (10.4 (Ubuntu 10.4-0ubuntu0.18.04))
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

testdb=>
関連コンテンツ