PostgreSQL JDBC驱动sslfactory默认行为是什么(AWS RDS场景)
PostgreSQL JDBC驱动
sslfactory参数默认实现说明 sslfactory的默认实现和你使用的驱动版本直接绑定,不存在跨所有版本的统一默认值:
- 版本 ≤ 42.2.5:未手动指定参数时,默认使用
org.postgresql.ssl.NonValidatingFactory。这个实现不会校验服务端证书有效性、也不会校验证书主机名和连接地址是否匹配,仅完成SSL传输加密,存在中间人攻击风险。早期很多用户连接云厂商PostgreSQL服务时无需导入证书就能直接建立SSL连接,就是这个默认逻辑导致的。 - 版本 ≥ 42.2.6:未手动指定参数时,默认使用
org.postgresql.ssl.DefaultJavaSSLFactory。这个实现直接复用JDK原生的SSL校验逻辑,默认读取JDK自带的信任库(通常路径为$JAVA_HOME/jre/lib/security/cacerts)校验服务端证书链合法性、主机名匹配性,不会跳过任何安全校验流程。
针对你使用AWS PostgreSQL RDS的场景补充:如果用42.2.6及以上版本驱动,直接走SSL连接RDS会抛出证书校验错误——AWS RDS使用的服务端根证书默认不在JDK自带的信任库内。生产环境建议将RDS对应的根证书导入JDK信任库走正常校验流程,不建议为了临时连通性直接配置跳过证书校验的SSL工厂。
内容的提问来源于stack exchange,提问作者Hard Worker
相关产品推荐
相关产品推荐

