¿Cómo especificar un certificado de cliente para psql?

11

Tengo un servidor Postgres con un usuario devque requiere un certificado de cliente para iniciar sesión. Estoy usando el comando psql "sslmode=require user=dev host=db.prod", que me da psql: FATAL: connection requires a valid client certificate.

Sé dónde está el certificado en mi servidor. Mi pregunta es, ¿cómo especifico la ubicación del certificado del cliente psql?

Jorn
fuente

Respuestas:

8

Como se indica en la documentación vinculada por @Milen, puede hacerlo configurando las variables de entorno PGSSLCERTy PGSSLKEY, o agregando sslcert=<cert location> sslkey=<key location>a la cadena de conexión.

Jorn
fuente
2
Notaré aquí eso PGSSLCERTy PGSSLKEYtambién permitiré que se especifiquen rutas , así que no catingrese el certificado o la clave en esas variables.
SeldomNeedy
8

El 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 las variables están aquí .

Olivier D
fuente
si coloco la raíz crt en ~ / .postgreqsl / no tengo que proporcionar ninguna clave. Si lo coloco en otro lugar y proporciono sslrootcert, de repente también tengo que proporcionar la clave: ¿sabe cómo funciona?
Radu Simionescu