0

このガイドに従ってみましたが、サーバーに接続できませんでした。サーバー/コンピューターの情報を以下にリストしました。ただし、セキュリティ上の理由から、実際のドメイン名またはユーザー名は含めませんでした. 理想的には、クライアント側にキーを保存する必要なく、ssl 経由で接続したいと考えています。

リモートサーバー

OS: 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

仕事用パソコン

OS: 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 オプションをコメントアウトしました。
    • ファイルに変更hostsslhostました。pg_hba.conf
    • systemctl restart postgresql-13
  • PCコマンドプロンプト
    • psql -d postgres -h domain.com -U username
      • 今回はパスワードの入力を求められ、正常にログインできました。

質問

SSL 経由で接続するには、他にどのような手順が必要ですか?

4

0 に答える 0