首页主机资讯Linux PgAdmin如何配置SSL加密

Linux PgAdmin如何配置SSL加密

时间2025-11-28 11:03:05发布访客分类主机资讯浏览1047
导读:Linux 上配置 pgAdmin SSL 加密 一 前置准备 安装 pgAdmin 与 OpenSSL: Debian/Ubuntu:sudo apt update && sudo apt install pgadmi...

Linux 上配置 pgAdmin SSL 加密

一 前置准备

  • 安装 pgAdmin 与 OpenSSL:
    • Debian/Ubuntu:sudo apt update & & sudo apt install pgadmin4 openssl
    • RHEL/CentOS:sudo dnf/yum install pgadmin4 openssl
  • 规划证书路径(示例):创建目录 /etc/pgadmin4/ssl,用于存放证书与私钥。

二 为 pgAdmin Web 界面启用 HTTPS

  • 生成证书与私钥(自签名,生产环境建议使用受信任 CA 证书):
    • 方式 A(一步生成自签名证书,便于快速启用):
      • sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout /etc/pgadmin4/server.key -out /etc/pgadmin4/server.crt
    • 方式 B(传统 CSR 流程,便于后续更换或扩展):
      • sudo openssl genrsa -out /etc/pgadmin4/ssl/pgadmin.key 2048
      • sudo openssl req -new -key /etc/pgadmin4/ssl/pgadmin.key -out /etc/pgadmin4/ssl/pgadmin.csr
      • sudo openssl x509 -req -days 365 -in /etc/pgadmin4/ssl/pgadmin.csr -signkey /etc/pgadmin4/ssl/pgadmin.key -out /etc/pgadmin4/ssl/pgadmin.crt
  • 配置 pgAdmin 使用证书(编辑本地配置文件,避免被包升级覆盖):
    • 常见路径:
      • Debian/Ubuntu:sudo nano /etc/pgadmin4/config_local.py
      • RHEL/CentOS(Python 虚拟环境/WSGI 部署):sudo nano /usr/lib/pythonX.X/site-packages/pgadmin4-web/config_local.py
    • 在文件末尾添加或修改:
      • SSL_CERTFILE = ‘/etc/pgadmin4/ssl/pgadmin.crt’
      • SSL_KEYFILE = ‘/etc/pgadmin4/ssl/pgadmin.key’
  • 设置证书与私钥权限(示例运行用户为 pgadmin,请以 ps aux | grep pgadmin 实际为准):
    • sudo chown root:pgadmin /etc/pgadmin4/ssl/.crt /etc/pgadmin4/ssl/.key
    • sudo chmod 640 /etc/pgadmin4/ssl/.crt /etc/pgadmin4/ssl/.key
  • 可选 修改默认端口(默认 5050,示例改为 5051):
    • /etc/pgadmin4/config_local.py 中添加或修改:WEB_PORT = 5051
  • 开放防火墙端口(示例 5051/tcp):
    • UFW:sudo ufw allow 5051/tcp
  • 重启 pgAdmin 并验证:
    • sudo systemctl restart pgadmin4
    • 访问:https://< 服务器IP或域名> :5051,浏览器应显示锁形图标;自签名证书会提示不受信任(生产环境请使用 CA 证书)。

三 通过反向代理提供 HTTPS(Nginx 示例)

  • 若 pgAdmin 由 Nginx/Apache 反向代理对外提供,可在代理层终止 SSL,pgAdmin 配置保持 HTTP:
    • Nginx 示例片段:
      • server { listen 443 ssl; server_name pgadmin.example.com;
      • ssl_certificate /etc/pgadmin4/ssl/pgadmin.crt;
      • ssl_certificate_key /etc/pgadmin4/ssl/pgadmin.key;
      • location / { include uwsgi_params; uwsgi_pass unix:/var/run/pgadmin4/pgadmin4.sock; } }
    • 重启 Nginx:sudo systemctl restart nginx
    • 说明:此方式下 pgAdmin 配置文件中无需设置 SSL_CERTFILE/SSL_KEYFILE。

四 配置 pgAdmin 连接 PostgreSQL 时使用 SSL

  • 在目标 PostgreSQL 服务器启用 SSL:
    • postgresql.conf:
      • ssl = on
      • ssl_cert_file = ‘/etc/postgresql//main/server.crt’
      • ssl_key_file = ‘/etc/postgresql//main/server.key’
    • pg_hba.conf(示例:允许所有主机以 SSL 连接):
      • hostssl all all 0.0.0.0/0 md5
    • 重启 PostgreSQL:sudo systemctl restart postgresql
  • 在 pgAdmin 中添加服务器连接时:
    • 在“服务器”→“属性”→“连接”中勾选 Use SSL,按需填写 SSL 模式(如 require/verify-full)及客户端证书路径(若服务器启用客户端证书校验)。

五 常见问题与排查

  • 证书或私钥路径错误:检查 config_local.py 中 SSL_CERTFILE/SSL_KEYFILE 路径与文件是否存在。
  • 权限过宽:私钥应为仅 rootpgadmin 可读(如 640),防止泄露。
  • 端口未放行:确认 UFW/ firewalld 已放行 5050/5051(或自定义端口)。
  • 自签名证书不受信任:浏览器首次访问会有安全提示;生产环境请部署 CA 签发证书或在反向代理层使用受信任证书。
  • 服务未生效:执行 sudo systemctl status pgadmin4 查看日志与启动失败原因。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux PgAdmin如何配置SSL加密
本文地址: https://pptw.com/jishu/758828.html
如何在Ubuntu中监控Java日志 Ubuntu Java日志如何压缩存储

游客 回复需填写必要信息