1. ホーム
  2. postgresql

[解決済み] psqlを使用してSSLモードでPostgreSQLに接続する

2023-01-02 20:08:27

質問

PostgreSQL サーバーの ssl 証明書を設定しようとしています。データディレクトリに証明書ファイル (server.crt) と鍵 (server.key) を作成し、パラメータ SSL を "on" に更新して安全な接続を可能にしました。

ただ、クライアント側でサーバー証明書による認証をサーバーだけに行い、サーバー側でのクライアントの認証は不要にしたいのです。私は、接続しコマンドを実行するためにクライアントとしてpsqlを使用しています。

私は、PostgreSQL 8.4とLinuxを使用しています。私は、SSLを有効にしてサーバに接続するために、以下のコマンドを試してみました。

       psql "postgresql://localhost:2345/postgres?sslmode=require"

と表示されますが

       psql: invalid connection option "postgresql://localhost:2345/postgres?sslmode"

何が間違っているのでしょうか?SSLモードを有効にしてサーバに接続しようとしている方法は正しいのでしょうか?サーバのみ認証し、クライアントを認証しないのは問題ないのでしょうか?

どのように解決するのですか?

psql 9.2以下では、このURLのような構文をオプションに使用することはできません。

SSL の使用は sslmode=value オプションか、コマンドラインの PGSSLMODE 環境変数で指定できますが、デフォルトは prefer であれば、何も指定しなくても自動的にSSL接続が試されます。

conninfo文字列を使った例( psql 8.4用に更新しました。 )

psql "sslmode=require host=localhost dbname=test"

を読む マニュアルページ をご覧ください。