无法与 PostgreSQL 建立 SSL 连接

时间:2021-04-14 19:38:19

标签: ssl centos7 postgresql-13

我尝试遵循 this 指南,但无法连接到服务器。我在下面列出了我的服务器/计算机信息。但是,出于安全原因,我没有包括我的真实域名或用户名。理想情况下,我希望通过 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
配置:

  • 我从 this 站点下载了 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
  • PC 命令提示符
    • psql -d postgres -h domain.com -U username
      • 这次我被提示输入密码并成功登录。

问题

我还需要哪些其他步骤才能通过 ssl 进行连接?

0 个答案:

没有答案