无法使用 PostgreSQL JDBC 驱动程序通过 SSL 连接
Posted
技术标签:
【中文标题】无法使用 PostgreSQL JDBC 驱动程序通过 SSL 连接【英文标题】:Cannot connect over SSL using PostgreSQL JDBC driver 【发布时间】:2021-07-01 02:05:37 【问题描述】:我正在尝试通过 SSL(即 TLSv1.3)连接数据库。
使用psql
进行测试时,它通过 TLSv1.3 连接。
使用下面的 JDBC 驱动程序,由于某种原因,连接根本不受 SSL 保护。
(通过执行select * from pg_stat_ssl;
确认这一点)
val props = new Properties()
props.setProperty("user", "postgres")
props.setProperty("password", "example")
props.setProperty("ssl", "true")
props.setProperty("sslmode", "allow")
props.setProperty("sslfactory", "org.postgresql.ssl.NonValidatingFactory")
DriverManager.getConnection("jdbc:postgresql://localhost/", props)
这个问题的原因是什么?
PostgreSQL JDBC 驱动版本:42.2.5/42.2.22
【问题讨论】:
【参考方案1】:如果您将sslmode
设置为allow
,客户端将首选非加密连接。将设置更改为require
或prefer
。
【讨论】:
以上是关于无法使用 PostgreSQL JDBC 驱动程序通过 SSL 连接的主要内容,如果未能解决你的问题,请参考以下文章
我无法在我的 macbook air m1 上安装 PostgreSQL 的 JDBC 驱动程序
出现错误:无法加载 JDBC 驱动程序类 [org.postgresql.Driver]
无法使用 Postgresql 将 JDBC 连接到 sonarqube