Использование psql для подключения к postgresql в режиме ssl

Я пытаюсь настроить SSL сертификат для сервера PostgreSQL. Я создал файл сертификата (server.crt) и ключ (сервер.ключ) в каталоге данных и обновите параметр 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? Нормально ли аутентифицировать только сервер, а не клиент ?

пожалуйста, помогите мне.

3 ответов


psql ниже 9.2 не принимает этот URL-подобный синтаксис для опций.

использование SSL может управляться в командной строке или PGSSLMODE переменная окружения, но значение по умолчанию prefer, SSL-соединения будут опробованы сначала автоматически без указания чего-либо.

пример со строкой conninfo (обновлено для psql 8.4)

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

читать страница руководства дополнительные опции.


psql --set=sslmode=require -h localhost -p 2345 -U thirunas \
-d postgres -f test_schema.ddl

psql "sslmode=require host=localhost port=2345 dbname=postgres" --username=some_user

по словам документация по postgres psql, только параметры соединения должны идти в строке conninfo (вот почему в нашем примере --username не находится внутри этой строки)