web-dev-qa-db-ja.com

pgbouncerとssl接続

3台のサーバーがあり、そのうちの2台はpostgres 9.5.3を実行しており、3台目はpgbouncer 1.7.2を実行しています。

私はpgbouncerを介して2つのpostgresqlインスタンスの1つにアクセスでき、すべて完璧に動作します。他のpostgresqlサーバーを呼び出します。P1は私の制御下にないため、sslを使用して接続する必要があるため、次の行をこのサーバーに追加しましたpga_hba.conf

hostssl    all       all             ###.###.###.###/32               md5

PgbouncerサーバーからPSQLでP1に問題なく接続できます。しかし、pgbouncerを介してP1に接続すると、このエラーメッセージが表示されます

psql: ERROR:  no pg_hba.conf entry for Host "XXX.XXX.XXX.XXX", user "myuser", database "mydb", SSL off

ここに私のpgbouncer.iniがあります

[databases]
my_database = Host=xxx.xxx.xxx.xxxx port=5432 dbname=mydb user=myuser password=mypassword client_encoding='UTF8'

[pgbouncer]
listen_addr = *
listen_port = 5432
auth_type = md5 

auth_file = /etc/pgbouncer/userlist.txt
logfile = /var/log/postgresql/pgbouncer.log
pidfile = /var/run/postgresql/pgbouncer.pid

admin_users = rms_admin 

pool_mode = session

server_reset_query = DISCARD ALL
server_check_query = select 1

default_pool_size = 40

stats_period=300

log_pooler_errors = 1

ignore_startup_parametersと組み合わせてmy_databaseへの接続文字列にsslmode = requireを追加しようとしましたが、pgbouncerログで次のエラーが発生しました。

ERROR skipping database my_database because of unknown parameter in connstring: sslmode

pgbouncerでssl接続を構築するにはどうすればよいですか?

3
RootOfProblem

Pgbouncerとサーバー間のTLSは、接続文字列では有効になりませんが、server_tls_sslmodeで有効になります。これはデフォルトで無効になっています。

少なくともpreferに設定する必要があります。また、相手側のTLS構成によっては、他のserver_tls_*パラメータのいくつかが必要になる場合があります。

詳細は https://pgbouncer.github.io/config.html#tls-settings を参照してください。

0
Daniel Vérité