在 Ubuntu 上使用的 pgAdmin(无论是 pgAdmin 4 桌面版还是通过浏览器访问的 Web 版),“加密连接”通常指 pgAdmin 到 PostgreSQL 服务器之间的连接使用 SSL/TLS 加密。下面按常见场景说明。
在 PostgreSQL 服务器上:
sudo -u postgres psql
查看是否支持 SSL:
SHOW ssl;
若未开启,编辑 postgresql.conf:
ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
编辑 pg_hba.conf,要求加密连接:
hostssl all all 0.0.0.0/0 scram-sha-256
重启 PostgreSQL:
sudo systemctl restart postgresql
在 pgAdmin 中:
prefer(尝试加密)require(必须加密)verify-ca / verify-full(验证证书,最安全)✅ 推荐使用 verify-full(生产环境)
如果你是通过浏览器访问 pgAdmin:
安装 Nginx:
sudo apt install nginx
配置反向代理 + SSL:
server {
listen 443 ssl;
server_name pgadmin.example.com;
ssl_certificate /etc/ssl/certs/pgadmin.crt;
ssl_certificate_key /etc/ssl/private/pgadmin.key;
location / {
proxy_pass http://127.0.0.1:5050;
proxy_set_header Host $host;
}
}
重启 Nginx:
sudo systemctl restart nginx
pgAdmin 本身:
如忘记 Master Password,只能重置:
rm ~/.pgadmin/storage/*
| 场景 | 推荐方式 |
|---|---|
| pgAdmin → PostgreSQL | SSL mode = verify-full |
| 浏览器访问 pgAdmin | Nginx + HTTPS |
| 云服务器 | 同时启用两者 |
如果你愿意,可以告诉我:
我可以给你一份可直接用的配置示例。