url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
Obs:om schema_name
är public
, det krävs inte. Men även om porten är standard, dvs. 5432, måste du tillhandahålla den.
För sslmode-värden ref:https://jdbc.postgresql.org/documentation/ head/ssl-client.html
ställ in sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
för att möjliggöra validering.
För icke-validerande ssl-anslutning kan du använda sslfactory=org.postgresql.ssl.NonValidatingFactory
Men kom ihåg att när du har aktiverat SSL-validering kan det kräva ett rot-CA-certifikat.
Du har olika alternativ enligt följande (kanske inte är uttömmande. men dessa fungerade för mig.)
- Du kan placera den på dess standardplats, dvs. ~/Postgres/root.crt ELLER
- Ställ in
PGSSLROOTCERT
env-variabel till dess sökväg ELLER - importera till en truststore och skicka sökvägen till den som:
-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password]
. Om du använder standard truststore, dvs JRE:scacerts
dessa två env-variabler krävs inte.
Ref:
https://jdbc.postgresql.org/documentation/head/ssl-client .html
https://www.postgresql.org/docs/9.0/libpq-ssl .html