在 CentOS 上,“pgAdmin 如何加密”通常指下面几种情况之一。我先按常见需求分别说明,你可以对照自己的场景:
pgAdmin 4 自身不会明文存储密码,它使用 PBKDF2 + SHA256 对登录账号密码进行哈希加密,存放在其内部 SQLite 数据库中。
/var/lib/pgadmin4/pgadmin4.db
python3
>>> from pgadmin.utils import crypto
>>> # pgAdmin 内部已集成加密模块
✅ 你只需要保证:
pgadmin4.dbchmod 600 /var/lib/pgadmin4/pgadmin4.db
chown pgadmin:pgadmin /var/lib/pgadmin4/pgadmin4.db
pgAdmin 4 对 数据库密码 使用 对称加密(AES),密钥来自:
/var/lib/pgadmin4/config_local.py
编辑:
vim /var/lib/pgadmin4/config_local.py
添加:
import os
from cryptography.fernet import Fernet
KEY = Fernet.generate_key()
ENCRYPTED_PASSWORD_KEY = KEY.decode()
或直接使用:
ENCRYPTED_PASSWORD_KEY = '你的Fernet密钥'
重启 pgAdmin:
systemctl restart httpd
# 或
systemctl restart pgadmin4
✅ 这样 pgAdmin 中保存的数据库密码就是加密存储的。
强烈建议,否则密码是明文 HTTP 传输。
yum install nginx mod_ssl -y
server {
listen 443 ssl;
server_name pgadmin.example.com;
ssl_certificate /etc/ssl/pgadmin.crt;
ssl_certificate_key /etc/ssl/pgadmin.key;
location / {
proxy_pass http://127.0.0.1:5050;
proxy_set_header Host $host;
}
}
systemctl restart nginx
# 防火墙
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
# 禁用 HTTP
systemctl stop httpd
✅ 必须做:
✅ 可选:
如果你能具体说明:
我可以给你更精确的步骤。