Tengo un servidor Postgres con un usuario dev
que 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
?
Respuestas:
Como se indica en la documentación vinculada por @Milen, puede hacerlo configurando las variables de entorno
PGSSLCERT
yPGSSLKEY
, o agregandosslcert=<cert location> sslkey=<key location>
a la cadena de conexión.fuente
PGSSLCERT
yPGSSLKEY
también permitiré que se especifiquen rutas , así que nocat
ingrese el certificado o la clave en esas variables.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í .
fuente