无法使用 PostgreSQL JDBC 驱动程序通过 SSL 连接

Cannot connect over SSL using PostgreSQL JDBC driver

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

如果将 sslmode 设置为 allow,客户端将优先选择非加密连接。将设置更改为 requireprefer