pgAdmin在Linux中如何配置SSL
导读:在 Linux 上配置 pgAdmin 的 SSL 通常包含两部分:为运行 pgAdmin 的 Web 服务启用 HTTPS,以及在 pgAdmin 中配置到 PostgreSQL 的 SSL 连接模式与证书。下面给出可直接落地的步骤与要点...
在 Linux 上配置 pgAdmin 的 SSL 通常包含两部分:为运行 pgAdmin 的 Web 服务启用 HTTPS,以及在 pgAdmin 中配置到 PostgreSQL 的 SSL 连接模式与证书。下面给出可直接落地的步骤与要点。
为 pgAdmin Web 服务启用 HTTPS
- 准备证书与密钥
建议使用受信任 CA 签发的证书;自签名仅用于测试。示例生成自签名证书(有效期 3650 天):
sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650
-keyout /etc/pgadmin4/server.key -out /etc/pgadmin4/server.crt - 配置 pgAdmin 启用 SSL
编辑配置文件(Debian/Ubuntu 常见为:/etc/pgadmin4/config_local.py):
sudo nano /etc/pgadmin4/config_local.py
启用服务器模式并指定证书:
SERVER_MODE = True
SSL_CERTFILE = ‘/etc/pgadmin4/server.crt’
SSL_KEYFILE = ‘/etc/pgadmin4/server.key’
如需修改访问端口(默认 5050),可添加:
WEB_PORT = 5051 - 调整防火墙放行新端口
例如使用 UFW:
sudo ufw allow 5051/tcp - 重启服务并验证
sudo systemctl restart pgadmin4
浏览器访问:https://服务器IP:5051,确认证书生效且为 HTTPS。
在 pgAdmin 中配置到 PostgreSQL 的 SSL 连接
- 基本连接参数
在 pgAdmin:Servers > Register > Server,General 填写名称;Connection 填写 Host name/address、Port、Username、Password。 - SSL 模式与证书参数(Parameters 页签)
- SSL mode(三选一):
- Require:仅加密,不验证服务器真实性。
- Verify-CA:加密并验证服务器证书由受信任 CA 签发。
- Verify-Full:加密、验证 CA 且校验证书 CN/DNS 与连接地址一致(推荐用于生产)。
- 证书路径:
- 当 SSL mode 为 Verify-CA/Verify-Full 时,配置 Root certificate(指向数据库 CA 证书的 PEM 文件)。
- 若数据库启用了客户端证书认证(服务端验证客户端),还需配置 Client certificate 与 Client certificate key。
- SSL mode(三选一):
- 保存并测试连接,确认状态为已连接且 SSL 生效。
PostgreSQL 服务器端的必要配置
- 启用 SSL 并指定证书
编辑 postgresql.conf(路径因发行版/安装方式不同而异):
ssl = on
ssl_cert_file = ‘/etc/postgresql/< 版本> /main/server.crt’
ssl_key_file = ‘/etc/postgresql/< 版本> /main/server.key’
如使用客户端 CA 校验,可添加:
ssl_ca_file = ‘/etc/postgresql/< 版本> /main/root.crt’ - 配置客户端访问规则
编辑 pg_hba.conf,优先使用 hostssl 并选择合适的认证方式(如 md5、scram-sha-256;若启用双向 TLS,可用 cert):
hostssl all all 0.0.0.0/0 md5 - 重启数据库并验证
sudo systemctl restart postgresql
连接测试(psql)可加上 sslmode=verify-full 等参数进行验证。
常见问题与排查要点
- 证书与权限
- 证书与密钥文件权限建议为 600,属主为运行 pgAdmin/PostgreSQL 的系统用户,避免因权限导致无法读取。
- 自签名证书用于生产时,客户端需显式信任该 CA 或导入到受信任根。
- 主机名一致性
- 使用 Verify-Full 时,证书的 CN/DNS 必须与 pgAdmin 中填写的 Host name/address 一致,否则验证失败。
- 云数据库场景
- 若连接 RDS PostgreSQL/Aliyun PolarDB 等云库,先在控制台开启 SSL 加密并下载 CA 证书(PEM),在 pgAdmin 的 Root certificate 指定该 PEM 文件;SSL mode 选择 Require/Verify-CA/Verify-Full。
- 云库开启/更换证书可能触发实例重启,请在业务低峰期操作。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: pgAdmin在Linux中如何配置SSL
本文地址: https://pptw.com/jishu/786188.html
