Как указать сертификат клиента для PSQL?

11

У меня есть сервер Postgres с пользователем, devдля входа в который требуется сертификат клиента. Я использую команду psql "sslmode=require user=dev host=db.prod", которая мне дает psql: FATAL: connection requires a valid client certificate.

Я знаю, где находится сертификат на моем сервере. У меня вопрос, как мне указать местоположение сертификата клиента psql?

Йорн
источник
См. Howtoforge.com/postgresql-ssl-certificates
Федерико Сьерра
1
postgresql.org/docs/current/static/…
Милен А. Радев

Ответы:

8

Как указано в документации , связанной с помощью @Milen, вы можете сделать это, установив PGSSLCERTи PGSSLKEYпеременные окружения, либо путем добавления sslcert=<cert location> sslkey=<key location>к строке подключения.

Йорн
источник
2
Я отмечу здесь это, PGSSLCERTа PGSSLKEYтакже разрешить указание путей , поэтому не catиспользуйте сертификат или сам ключ к этим переменным.
SeldomNeedy
8

Конечный результат выглядит так $>psql "port=5431 host=localhost user=postgres sslcert=./test/client.crt sslkey=./test/client.key sslrootcert=./test/server.crt sslmode=verify-ca"

Все переменные здесь .

Оливье Д
источник
если я помещаю root crt в ~ / .postgreqsl / мне не нужно указывать какой-либо ключ. Если я положу его куда-нибудь еще и предоставлю sslrootcert, вдруг мне придется также предоставить ключ - знаете ли вы, как это работает?
Раду Симионеску