Como especificar um certificado de cliente para psql?

11

Eu tenho um servidor Postgres com um usuário devque 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?

Jorn
fonte

Respostas:

8

Conforme declarado na documentação vinculada por @Milen, você pode fazer isso configurando as variáveis ​​de ambiente PGSSLCERTe PGSSLKEY, ou adicionando sslcert=<cert location> sslkey=<key location>à cadeia de conexão.

Jorn
fonte
2
Vou anotar aqui isso PGSSLCERTe PGSSLKEYtambém permitir que os caminhos sejam especificados, para que cato certificado ou a chave não se insira nessas variáveis.
precisa saber é o seguinte
8

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 .

Olivier D
fonte
se eu colocar root crt em ~ / .postgreqsl /, não preciso fornecer nenhuma chave. Se eu colocá-lo em outro lugar e fornecer sslrootcert, de repente também preciso fornecer a chave - você sabe como isso funciona?
Radu Simionescu