You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级PostgreSQL 9.6至13.8后遇SSL不支持错误的排查解决咨询

错误含义

这个错误的核心是应用程序尝试通过SSL加密连接PostgreSQL 13.8服务器,但当前PostgreSQL实例并未启用SSL支持,导致JDBC连接池无法创建可用连接,进而触发Spring上下文初始化失败,最终引发应用持续重启。

修复方案

有两种可行的修复路径,可根据实际场景选择:

路径一:禁用应用端的SSL连接要求

找到应用的JDBC连接配置文件(如application.properties或application.yml),修改连接URL,添加sslmode=disable参数:

jdbc:postgresql://your-db-host:5432/your-db-name?sslmode=disable

如果是通过独立配置项设置,将spring.datasource.ssl-mode(或对应框架的SSL配置项)设为disable即可。

路径二:在PostgreSQL 13.8服务器上启用SSL支持

  1. 证书准备:
    • 若升级前PostgreSQL 9.6已有合法的server.crt和server.key,直接将这两个文件复制到13.8版本的数据目录,执行以下命令修正权限:
      chmod 600 server.key server.crt
      chown postgres:postgres server.key server.crt
      
    • 若没有可用证书,使用OpenSSL生成自签名证书(在数据目录下执行):
      # 生成证书请求
      openssl req -new -text -out server.req
      # 生成私钥
      openssl rsa -in privkey.pem -out server.key
      rm privkey.pem
      # 生成自签名证书
      openssl req -x509 -in server.req -text -key server.key -out server.crt
      # 修正权限
      chmod 600 server.key
      chown postgres:postgres server.key server.crt
      
  2. 修改PostgreSQL配置:
    编辑postgresql.conf,设置以下参数:
    ssl = on
    ssl_cert_file = 'server.crt'
    ssl_key_file = 'server.key'
    
  3. 调整pg_hba.conf(可选):
    若需要强制客户端通过SSL连接,可将对应客户端的连接规则改为hostssl,例如:
    hostssl all all 0.0.0.0/0 md5
    
  4. 重启PostgreSQL服务,使配置生效。
关于server.crt和server.key的说明
  • 若升级前9.6版本已启用SSL且证书未过期,无需重新生成,直接迁移证书文件并修正权限即可。
  • 若之前未启用SSL、证书过期或无效,则必须重新生成证书文件,否则无法启用SSL连接。

内容的提问来源于stack exchange,提问作者Vichu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:25:41