JDBC连接Cloud SQL PostgreSQL无证书验证SSL连接失败如何解决
Cloud SQL PostgreSQL JDBC无证书验证SSL连接解决方案
错误原因说明
你遇到的报错不是sslfactory参数未生效,该参数的作用仅为控制客户端不校验服务端的SSL证书,无法绕过Cloud SQL PostgreSQL服务端默认的「强制客户端提供证书」的校验规则。
操作步骤
第一步:修改Cloud SQL实例SSL配置
这是无需客户端证书连接的前提条件:
- 进入Google Cloud控制台对应Cloud SQL实例的详情页
- 切换到「连接」标签页,找到SSL配置模块
- 关闭「需要客户端证书」的开关,保存配置后等待实例重启生效
第二步:调整JDBC连接配置
- 首先确保使用42.2.20及以上版本的
org.postgresql:postgresqlJDBC驱动,避免旧版本参数兼容问题 - 参考下方格式编写连接字符串:
jdbc:postgresql://<你的Cloud SQL实例公网IP>:5432/<数据库名>?ssl=true&sslmode=require&sslfactory=org.postgresql.ssl.NonValidatingFactory - 特殊场景参数转义:如果连接字符串写在XML、YAML等配置文件中,需要把参数分隔符
&转义为&
常见问题排查
- 确认你访问Cloud SQL的出口IP已经添加到实例的「授权网络」白名单中
- 确认连接配置中没有额外传入
sslcert、sslkey等SSL证书相关参数,避免参数覆盖 - 更推荐使用Cloud SQL Auth Proxy连接:通过代理工具访问实例时,无需手动配置任何SSL参数,代理会自动处理加密通信,也不需要开放实例公网IP白名单,安全性更高
内容的提问来源于stack exchange,提问作者Rajesh Kannan
相关产品推荐
相关产品推荐

