我有一个数据库服务器,可以使用psql
从我的计算机登录:
root@engine:/devops# psql -h database -U postgres -d uat
给出以下结果:
psql (9.5.0, server 9.4.5)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.
uat=#
但如果我尝试从我的应用程序连接:
no pg_hba.conf entry for host *** user "postgres", database "uat", SSL off
这是我的应用程序使用的my
props.properties
:uatDb.user=postgres
uatDb.password=***
uatDb.driverClass=org.postgresql.Driver
uatDb.jdbcUrl=jdbc:postgresql://database:5432/uat?ssl=true
uatDb.port=5432
uatDb.name=uat
uatDb.host=database
我甚至将公共证书从数据库提供者导入到应用程序trustore中,但似乎也不起作用。
我想知道为什么我可以通过
psql
连接,但我的应用程序没有。有什么帮助吗?
最佳答案
我可以确认连接是在SSL关闭的情况下进入的,这很可能是由于证书验证限制。你能试着加上:
sslfactory=org.postgresql.ssl.NonValidatingFactory
看看这能不能解决问题?