このガイドに従ってみましたが、サーバーに接続できませんでした。サーバー/コンピューターの情報を以下にリストしました。ただし、セキュリティ上の理由から、実際のドメイン名またはユーザー名は含めませんでした. 理想的には、クライアント側にキーを保存する必要なく、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 オプションをコメントアウトしました。- ファイルに変更
hostssl
しhost
ました。pg_hba.conf
systemctl restart postgresql-13
- PCコマンドプロンプト
psql -d postgres -h domain.com -U username
- 今回はパスワードの入力を求められ、正常にログインできました。
質問
SSL 経由で接続するには、他にどのような手順が必要ですか?