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?



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.


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 .


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.