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

PostgreSQL 14启用传输层TLS后服务启动失败求助

PostgreSQL 14 启动失败排查(添加sslmode=require到pg_hba.conf后)

核心原因

你在pg_hba.conf中添加的sslmode=require是客户端连接参数,并非服务器端pg_hba.conf的合法配置项。PostgreSQL启动时会严格解析pg_hba.conf的语法,遇到未知参数会直接启动失败。

服务器端要强制SSL连接,已经通过hostssl类型的规则实现(你配置里的hostssl all all 0.0.0.0/0 md5 clientcert=1已经满足:仅允许SSL连接,同时要求客户端证书+密码认证),不需要额外添加sslmode=require。

修复步骤

  1. 编辑pg_hba.conf,移除违规的sslmode=require参数,恢复到你原本的hostssl规则:
    hostssl    all             all             0.0.0.0/0            md5 clientcert=1
    
  2. 验证配置文件语法正确性:
    /usr/pgsql-14/bin/pg_ctl -D /var/lib/pgsql/14/data/ check
    
    如果输出pg_ctl: no errors found in "/var/lib/pgsql/14/data/postgresql.conf" and "/var/lib/pgsql/14/data/pg_hba.conf",说明配置没问题。
  3. 重启服务:
    sudo systemctl restart postgresql-14.service
    

额外检查点(防止其他潜在问题)

  • 确保SSL证书文件(root.crt、server.crt、server.key)的权限正确:文件所属用户应为postgres,权限设置为600(服务器密钥server.key必须严格限制权限,否则PostgreSQL会拒绝启动):
    chown postgres:postgres /var/lib/pgsql/ssl/*
    chmod 600 /var/lib/pgsql/ssl/server.key
    
  • 查看PostgreSQL的详细日志(通常在/var/lib/pgsql/14/data/log/目录下),如果重启仍失败,日志里会有更具体的错误信息,比如证书文件不存在、权限错误等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:54:56