sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo conectarse con la base de datos PostgreSQL a través de SSL?

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í).

  1. Puede colocarlo en su lugar predeterminado, es decir, ~/Postgres/root.crt O
  2. Establecer PGSSLROOTCERT variable env a su ruta O
  3. 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