Подтвердить что ты не робот

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

Я пытаюсь настроить сертификат ssl для сервера postgreSQL. Я создал файл сертификата (server.crt) и key (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, является правильным? Хорошо ли аутентифицировать только сервер, а не клиент?

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

4b9b3361

Ответ 1

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

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

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

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

Подробнее читайте страницу руководства.

Ответ 2

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

Ответ 3

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

Согласно postgres psql documentation, в строке conninfo должны идти только параметры подключения (что почему в нашем примере - имя_пользователя не внутри этой строки)

Ответ 4

psql -h <host> -p <port> -U <user> -d <db>

и обновите /var/lib/pgsql/10/data/pg_hba.conf чтобы изменить метод аутентификации на cert. Проверьте следующую ссылку для получения дополнительной информации:

https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html

Ответ 5

Нашел следующие опции, полезные для предоставления всех файлов для самозаверяющего экземпляра postgres

psql "host={hostname} sslmode=prefer sslrootcert={ca-cert.pem} sslcert={client-cert.pem} sslkey={client-key.pem} port={port} user={user} dbname={db}"