У меня есть сервер Postgres с пользователем, dev
для входа в который требуется сертификат клиента. Я использую команду psql "sslmode=require user=dev host=db.prod"
, которая мне дает psql: FATAL: connection requires a valid client certificate
.
Я знаю, где находится сертификат на моем сервере. У меня вопрос, как мне указать местоположение сертификата клиента psql
?
Ответы:
Как указано в документации , связанной с помощью @Milen, вы можете сделать это, установив
PGSSLCERT
иPGSSLKEY
переменные окружения, либо путем добавленияsslcert=<cert location> sslkey=<key location>
к строке подключения.источник
PGSSLCERT
аPGSSLKEY
также разрешить указание путей , поэтому неcat
используйте сертификат или сам ключ к этим переменным.Конечный результат выглядит так
$>psql "port=5431 host=localhost user=postgres sslcert=./test/client.crt sslkey=./test/client.key sslrootcert=./test/server.crt sslmode=verify-ca"
Все переменные здесь .
источник