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


11

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

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



Ответы:


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, вдруг мне придется также предоставить ключ - знаете ли вы, как это работает?
Раду Симионеску
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.