我尝试按照本指南进行操作,但无法连接到服务器。我在下面列出了我的服务器/计算机信息。但是,出于安全原因,我没有包含我的真实域名或用户名。理想情况下,我想通过 ssl 进行连接,而无需在客户端存储密钥。
远程服务器
操作系统:CentOS 7
PostgreSQL 版本:13
配置:
certbot --apache -d domain.com -d www.domain.com
cd /var/lib/pgsql/13/data
vi postgresql.conf
- 我取消注释和/或更新了以下几行:
listen_addresses = '0.0.0.0' ssl = on ssl_cert_file = 'server.crt' ssl_key_file = 'server.key' ssl_prefer_server_ciphers = on
- 我取消注释和/或更新了以下几行:
vi pg_hba.conf
- 我添加了以下行:
hostssl all all 0.0.0.0/0 scram-sha-256
- 我添加了以下行:
cd /etc/letsencrypt/renewal-hooks/deploy
vi postgresql.deploy
- 我添加了以下几行:
#!/bin/bash umask 0177 export DOMAIN=domain.com export DATA_DIR=/var/lib/pgsql/13/data cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem $DATA_DIR/server.crt cp /etc/letsencrypt/live/$DOMAIN/privkey.pem $DATA_DIR/server.key chown postgres:postgres $DATA_DIR/server.crt $DATA_DIR/server.key # only for SELinux - CentOS, Red Hat chcon -t postgresql_db_t $DATA_DIR/server.crt $DATA_DIR/server.key
- 我添加了以下几行:
chmod +x postgresql.deploy
sh postgresql.deploy
systemctl restart postgresql-13
工作电脑
操作系统:Windows 7 64 位
PostgreSQL 版本:13
配置:
- 我从该站点下载了 PostgreSQL 13 二进制 Win x86-64 文件并将其解压缩到本地文件夹中。
- 我打开命令提示符并输入以下内容:
cd C:\Users\username\PostgreSQL\pgsql\bin
psql -d postgres -h domain.com -U username
- 输入此命令后,光标移动到下一行的开头,但没有任何反应。我等了很长时间,但屏幕上没有显示其他消息。
故障排除
- 服务器
- 我注释掉了
postgresql.conf
文件中的所有 ssl 选项。 - 我在文件中更改
hostssl
为。host
pg_hba.conf
systemctl restart postgresql-13
- 我注释掉了
- 电脑命令提示符
psql -d postgres -h domain.com -U username
- 这次我被提示输入密码并成功登录。
问题
为了让我通过 ssl 连接,还需要哪些其他步骤?