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

PgAdmin 4.6.20 OAuth2配置企业CA证书后SSL验证失败求助

PgAdmin 4.6.20 OAuth2 SSL证书验证失败问题解决

问题描述

我在PgAdmin 4.6.20中启用了OAuth2功能,需使用企业签名的CA证书。按照config.py说明在/pgadmin4目录下创建了cacert.pem文件,配置代码如下:

CA_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)),          
                   "cacert.pem" )

但仍出现以下错误:

(Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get issuer certificate (_ssl.c:997)'))),"info":"","result":null,"data":null}

发现config_distro.py中CA_FILE路径为/etc/ssl/certs/ca-certificates.crt,已更新该文件内容,但问题依旧。系统无config_local.py和config_system.py等其他配置文件,需解决该SSL验证失败问题。


解决步骤

1. 确保CA证书链完整

企业签名证书需要完整信任链,cacert.pem必须包含从OAuth2服务器证书、中间CA证书到根CA证书的完整链条:

  • 将企业提供的根CA、中间CA证书内容按顺序合并到cacert.pem中(根CA通常放在最后);
  • 检查每段证书格式:以-----BEGIN CERTIFICATE-----开头,-----END CERTIFICATE-----结尾,无多余字符或换行问题。

2. 锁定有效CA_FILE配置

PgAdmin配置加载优先级为config_local.py > config_distro.py > config.py,直接在config_distro.py中明确指定自定义CA文件路径:

CA_FILE = "/pgadmin4/cacert.pem"

修改后重启PgAdmin服务,确保配置生效。

3. 修复证书文件权限

确保PgAdmin进程能读取cacert.pem:

chmod 644 /pgadmin4/cacert.pem
# 根据实际运行PgAdmin的用户组调整,比如www-data或pgadmin
chown pgadmin:pgadmin /pgadmin4/cacert.pem

4. 手动验证证书有效性

用curl测试OAuth2服务器的SSL连接,确认证书链是否正常:

curl --cacert /pgadmin4/cacert.pem https://你的OAuth2服务器地址
  • 若curl报错:说明证书链本身存在问题,需重新整理证书;
  • 若curl正常:说明PgAdmin配置加载异常,继续检查配置优先级或尝试环境变量强制指定。

5. 用环境变量强制指定CA文件

若配置文件设置不生效,在启动PgAdmin的脚本中添加环境变量:

export PGADMIN_CA_FILE="/pgadmin4/cacert.pem"

添加后重启PgAdmin服务。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:30:00