Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法建立到PostgreSQL的SSL连接_Ssl_Centos7_Postgresql 13 - Fatal编程技术网

无法建立到PostgreSQL的SSL连接

无法建立到PostgreSQL的SSL连接,ssl,centos7,postgresql-13,Ssl,Centos7,Postgresql 13,我尝试按照指南操作,但无法连接到服务器。我在下面列出了我的服务器/计算机信息。然而,出于安全原因,我没有包括我的真实域名或用户名。理想情况下,我希望通过ssl连接,而无需在客户端存储密钥 远程服务器 操作系统:CentOS 7 PostgreSQL版本:13 配置: certbot--apache-d domain.com-d www.domain.com cd/var/lib/pgsql/13/data vi postgresql.conf 我取消注释和/或更新了以下行: listen_a

我尝试按照指南操作,但无法连接到服务器。我在下面列出了我的服务器/计算机信息。然而,出于安全原因,我没有包括我的真实域名或用户名。理想情况下,我希望通过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
      
      #!/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
      
  • vi pg_hba.conf
    • 我添加了以下行:
      hostssl all     all     0.0.0.0/0       scram-sha-256
      
  • cd/etc/letsencrypt/renewal hooks/deploy
  • vi postgresql.deploy
    • 我添加了以下行:
      listen_addresses = '0.0.0.0'
      ssl = on
      ssl_cert_file = 'server.crt'
      ssl_key_file = 'server.key'
      ssl_prefer_server_ciphers = on
      
      #!/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重启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用户名
      • 输入此命令后,光标移动到下一行的开头,但什么也没发生。我等了很长时间,但屏幕上没有其他信息
故障排除
  • 服务器
    • 我注释掉了
      postgresql.conf
      文件中的所有ssl选项
    • 我在
      pg_hba.conf
      文件中将
      hostssl
      更改为
      host
    • systemctl重启postgresql-13
  • PC命令提示符
    • psql-d postgres-h domain.com-U用户名
      • 这次我被提示输入密码并成功登录
问题: 为了让我通过ssl连接,还需要哪些其他步骤