Eu tenho um servidor Postgres com um usuário dev
que requer um certificado de cliente para efetuar login. Estou usando o comando psql "sslmode=require user=dev host=db.prod"
, que me fornece psql: FATAL: connection requires a valid client certificate
.
Eu sei onde o certificado está no meu servidor. Minha pergunta é: como especificar o local do certificado do cliente psql
?
Respostas:
Conforme declarado na documentação vinculada por @Milen, você pode fazer isso configurando as variáveis de ambiente
PGSSLCERT
ePGSSLKEY
, ou adicionandosslcert=<cert location> sslkey=<key location>
à cadeia de conexão.fonte
PGSSLCERT
ePGSSLKEY
também permitir que os caminhos sejam especificados, para quecat
o certificado ou a chave não se insira nessas variáveis.O resultado final parece
$>psql "port=5431 host=localhost user=postgres sslcert=./test/client.crt sslkey=./test/client.key sslrootcert=./test/server.crt sslmode=verify-ca"
Todas as variáveis estão aqui .
fonte