使用從運行Postgres的類似服務器借用的設置9.4.1 & pgbouncer 1.6.1,我有多個用戶通過端口6543上的pgbouncer連接到數據庫。我也有第二個運行PostgreSQL 9.4.5的服務器,我已驗證所有用戶只能使用設置爲verify-full
的TLS/SSL直接連接到數據庫(在端口5432上)。pgbouncer 1.7使用TLS/SSL客戶端和服務器連接
但是,我需要創建一個組合這些配置的環境:其中所有用戶都通過TLS/SSL通過pgbouncer連接池連接到數據庫。這意味着我需要在最近發佈的(截至2015年12月18日)pgbouncer 1.7中使用新的TLS/SSL功能,但除了文檔the new TLS parameters之外,我還沒有發現任何可用的示例來演示新功能,也沒有取得任何成功我自己通過pgbouncer在我的第二臺服務器上使用TLS/SSL建立有效的連接。
我已經從我的第二臺服務器中包含了來自postgresql.conf
,pg_hba.conf
,& pgbouncer.ini
的相關摘錄。
的postgresql.conf:
ssl = on # (change requires restart)
ssl_cert_file = 'server.crt' # (change requires restart)
ssl_key_file = 'server.key' # (change requires restart)
ssl_ca_file = 'root.crt' # (change requires restart)
的pg_hba.conf:
hostssl all all 10.10.5.0/24 cert
pgbouncer.ini:
;
; pgbouncer configuration
;
[databases]
mydatabase = host=localhost port=5432 dbname=mydatabase
;
[pgbouncer]
listen_port = 6543
listen_addr = *
admin_users = lalligood, postgres
logfile = /tmp/pgbouncer.log
pidfile = /tmp/pgbouncer.pid
ignore_startup_parameters = application_name
server_reset_query = DISCARD ALL;
pool_mode = session
max_client_conn = 1000
default_pool_size = 300
log_pooler_errors = 0
; Improve compatibility with Java/JDBC connections
ignore_startup_parameters = extra_float_digits
; USER AUTHENTICATION (old way commented out with new lines below)
;auth_type = md5
;auth_file = pgbouncer/users.txt
auth_type = hba
auth_hba_file = pg_hba.conf
; TLS SETTINGS (NEW STUFF!)
client_tls_sslmode = verify-full
client_tls_key_file = server.key
client_tls_cert_file = server.crt
client_tls_ca_file = root.crt
server_tls_sslmode = verify-full
server_tls_key_file = /tmp/pgb_user.key
server_tls_cert_file = /tmp/pgb_user.crt
server_tls_ca_file = root.crt
pgbouncer開始,但是,當我嘗試連接的用戶「 lalligood',我得到以下錯誤:
ERROR: no such user: lalligood
pgbouncer.log包含每個嘗試以下行:
2016-01-13 16:00:36.971 2144 LOG C-0xcad410:
(nodb)/(nouser)@10.10.5.194:54848 closing because: No such user:
lalligood (age=0)
如果必要的話,我可以提供更多的信息。如果任何人有任何意見/建議,我可能會忽略這個工作,我非常感謝幫助!