url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
Opmerking:als schema_name
is public
, is niet vereist. Maar zelfs als de poort standaard is, d.w.z. 5432, moet u deze opgeven.
Voor sslmode-waarden zie:https://jdbc.postgresql.org/documentation/ head/ssl-client.html
set sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
om validatie mogelijk te maken.
Voor een niet-validerende ssl-verbinding kunt u sslfactory=org.postgresql.ssl.NonValidatingFactory
gebruiken
Maar vergeet niet dat als u SSL-validatie eenmaal inschakelt, er mogelijk een root-CA-certificaat nodig is.
Je hebt de volgende verschillende opties (misschien niet uitputtend, maar deze werkten voor mij.)
- Je kunt het op de standaardplaats plaatsen, bijv. ~/Postgres/root.crt OF
- Stel
PGSSLROOTCERT
in env variabele naar zijn pad OF - importeer in een truststore en geef het pad door als:
-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password]
. Als u standaard truststore gebruikt, d.w.z. JRE'scacerts
deze twee env-variabelen zijn niet vereist.
Ref:
https://jdbc.postgresql.org/documentation/head/ssl-client .html
https://www.postgresql.org/docs/9.0/libpq-ssl .html