首页 > 解决方案 > 无法使用 PostgreSQL JDBC 驱动程序通过 SSL 连接

问题描述

我正在尝试通过 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

标签: postgresqlssljdbc

解决方案


如果您设置sslmodeallow,客户端将首选非加密连接。将设置更改为requireprefer


推荐阅读