Comment spécifier un certificat client à psql?

11

J'ai un serveur Postgres avec un utilisateur devqui nécessite un certificat client pour se connecter. J'utilise la commande psql "sslmode=require user=dev host=db.prod"qui me donne psql: FATAL: connection requires a valid client certificate.

Je sais où se trouve le certificat sur mon serveur. Ma question est la suivante: comment spécifier l'emplacement du certificat client psql?

Jorn
la source

Réponses:

8

Comme indiqué dans la documentation liée par @Milen, vous pouvez le faire en définissant les variables d'environnement PGSSLCERTet PGSSLKEYou en ajoutant sslcert=<cert location> sslkey=<key location>à la chaîne de connexion.

Jorn
la source
2
Je noterai ici cela PGSSLCERTet PGSSLKEYautoriserai également les chemins à spécifier, alors ne faites pas catle certificat ou entrez lui-même ces variables.
SeldomNeedy
8

Le résultat final ressemble à $>psql "port=5431 host=localhost user=postgres sslcert=./test/client.crt sslkey=./test/client.key sslrootcert=./test/server.crt sslmode=verify-ca"

Toutes les variables sont ici .

Olivier D
la source
si je place root crt dans ~ / .postgreqsl / je n'ai pas à fournir de clé. Si je le place ailleurs et que je fournis sslrootcert, tout à coup, je dois également fournir la clé - savez-vous comment cela fonctionne?
Radu Simionescu