url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
Nota:si schema_name
es public
, No es requerido. Pero el puerto, incluso si es el predeterminado, es decir, 5432, debe proporcionarlo.
Para valores de sslmode ref:https://jdbc.postgresql.org/documentation/ cabeza/cliente-ssl.html
establecer sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
para habilitar la validación.
Para una conexión SSL sin validación, puede usar sslfactory=org.postgresql.ssl.NonValidatingFactory
Pero recuerde, una vez que habilite la validación SSL, puede requerir un certificado de CA raíz.
Tiene varias opciones de la siguiente manera (puede que no sea exhaustiva, pero estas funcionaron para mí).
- Puede colocarlo en su lugar predeterminado, es decir, ~/Postgres/root.crt O
- Establecer
PGSSLROOTCERT
variable env a su ruta O - importar a un almacén de confianza y pasarle la ruta como:
-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password]
. Si está utilizando el almacén de confianza predeterminado, es decir,cacerts
de JRE estas dos variables env no son necesarias.
Referencia:
https://jdbc.postgresql.org/documentation/head/ssl-client .html
https://www.postgresql.org/docs/9.0/libpq-ssl .html