0

我尝试按照指南进行操作,但无法连接到服务器。我在下面列出了我的服务器/计算机信息。但是,出于安全原因,我没有包含我的真实域名或用户名。理想情况下,我想通过 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为。hostpg_hba.conf
    • systemctl restart postgresql-13
  • 电脑命令提示符
    • psql -d postgres -h domain.com -U username
      • 这次我被提示输入密码并成功登录。

问题

为了让我通过 ssl 连接,还需要哪些其他步骤?

4

0 回答 0