postgresql - 无法使用 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
解决方案
如果您设置sslmode
为allow
,客户端将首选非加密连接。将设置更改为require
或prefer
。
推荐阅读
- java - 如何在类级别注释中为 JavaDocs 启用 Java checkstyle?
- regex - 当只有一个组时,正则表达式中的组如何工作?
- sql-server - 如何使用 NULL 值分组
- c# - ASP.NET Core 2.x 谷歌身份验证获取 id_token
- php - Wordpress - 创建多语言插件
- angular - 一个接一个地过滤一个表 - Angular 2++
- angular - 使用 * ngFor 在 html 标签上放置一个属性
- javascript - 使用时间尺度为第一个和最后一个数据点创建填充
- java - 如何在 android View 上循环以从数据库中添加文本?
- linux - 使用 mget 在 Bash 中下载文件