PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como se conectar ao banco de dados PostgreSQL por SSL?

url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory

Nota:se schema_name é public , não é necessário. Mas a porta, mesmo que seja padrão, ou seja, 5432, você deve fornecê-la.

Para valores sslmode ref:https://jdbc.postgresql.org/documentation/ head/ssl-client.html set sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory para habilitar a validação.

Para conexão SSL não validada, você pode usar sslfactory=org.postgresql.ssl.NonValidatingFactory

Mas lembre-se, depois de habilitar a validação SSL, pode ser necessário um certificado de CA raiz.

Você tem várias opções da seguinte forma (pode não ser exaustiva, mas funcionou para mim.)
  1. Você pode colocá-lo em seu lugar padrão, ou seja, ~/Postgres/root.crt OU
  2. Definir PGSSLROOTCERT env para seu caminho OU
  3. importar para um armazenamento confiável e passar o caminho como:-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password] . Se você estiver usando o armazenamento confiável padrão, ou seja, cacerts do JRE essas duas variáveis ​​de ambiente não são obrigatórias.

Ref.:

https://jdbc.postgresql.org/documentation/head/ssl-client .html

https://www.postgresql.org/docs/9.0/libpq-ssl .html