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

PostgreSQL SSL未启用原因排查:配置设置后为何未生效

PostgreSQL SSL未启用的原因及解决方法

核心原因

PostgreSQL中postgresql.auto.conf的配置优先级高于手动编辑的postgresql.conf。你的查询结果明确显示:

  • postgresql.conf里ssl = on但applied = f(未生效)
  • postgresql.auto.conf里ssl = off且applied = t(已生效)

这意味着auto.conf中的配置直接覆盖了主配置,导致SSL被禁用,进而触发日志中hostssl record cannot match because SSL is disabled的报错。

解决步骤

  1. 修正postgresql.auto.conf配置
    编辑该文件,将ssl = off修改为ssl = on,或者直接删除该行(若为误操作添加的配置):

    vim /dbdata/postgres/postgresql.auto.conf
    

    也可以用SQL命令重置该配置(需超级用户权限):

    ALTER SYSTEM RESET ssl;
    
  2. 重新加载配置
    无需重启PostgreSQL,执行配置重载即可:

    # 方法1:使用pg_ctl工具
    pg_ctl reload -D /dbdata/postgres
    # 方法2:使用系统服务命令(适用于systemd环境)
    systemctl reload postgresql
    
  3. 验证配置生效
    再次执行查询确认SSL配置已启用:

    SELECT name, setting, applied FROM pg_file_settings WHERE name = 'ssl';
    

    需确保ssl的setting为on且applied为t。

  4. 检查pg_hba.conf规则
    SSL启用后,pg_hba.conf中第102-104行的hostssl记录将正常生效,无需额外修改(若规则本身配置正确)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:53:23