我有一个数据库服务器,我可以使用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
这是我的应用程序使用的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
我甚至将公共证书从我的数据库提供程序导入到我的应用程序信任中,但似乎也没有。
我想知道为什么我可以通过psql
连接,但我的应用程序没有。
有什么帮助吗?
答案 0 :(得分:1)
我可以确认连接是否已关闭SSL,这很可能是由于证书验证限制。你能尝试添加:
sslfactory = org.postgresql.ssl.NonValidatingFactory
并查看是否可以解决问题?