为啥 postgres 强制 sslmode=verify-full 虽然它不在连接字符串中
Posted
技术标签:
【中文标题】为啥 postgres 强制 sslmode=verify-full 虽然它不在连接字符串中【英文标题】:Why postgres forced sslmode=verify-full though it it not there in the connection string为什么 postgres 强制 sslmode=verify-full 虽然它不在连接字符串中 【发布时间】:2019-11-18 10:37:17 【问题描述】:我已从仍在运行服务的连接字符串中删除了 sslmode=verify-full,它采用 sslmode=verify-full。我制作了 ssl=true 但删除了 sslmode。是在有效的连接字符串中还是有什么其他需要做的?
这是我的网址:
url="jdbc:amazon:postgresql://$apollo.OCF.FTPayDatabase.dbHost:$apollo.OCF.FTPayDatabase.dbSock/$apollo.OCF.FTPayDatabase.dbname?ssl=true;sslrootcert=/apollo/env/RhythmTomcatBase/certs/rds-combined-ca-bundle.pem"
【问题讨论】:
它是documented behaviour: "最简单的是 ssl=true,将它传递给驱动程序将导致驱动程序验证 SSL 证书并验证主机名(与 verify-满)。” 【参考方案1】:添加
sslfactory=org.postgresql.ssl.NonValidatingFactory
到您的 JDBC URL。这在the documentation 中有介绍。
【讨论】:
以上是关于为啥 postgres 强制 sslmode=verify-full 虽然它不在连接字符串中的主要内容,如果未能解决你的问题,请参考以下文章
通过 JDBC 连接到 postgres 服务器时 sslmode 参数的默认值?
Postgres:删除属于特定角色的所有表(或强制删除角色,忽略依赖对象)
如何强制 postgres docker 容器从新数据库开始