url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
Uwaga:jeśli schema_name
jest public
, nie jest to wymagane. Ale port, nawet jeśli jest domyślny, tj. 5432, musisz go podać.
Dla wartości sslmode ref:https://jdbc.postgresql.org/documentation/ head/ssl-client.html
ustaw sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
aby umożliwić walidację.
W przypadku niewalidującego połączenia SSL możesz użyć sslfactory=org.postgresql.ssl.NonValidatingFactory
Pamiętaj jednak, że po włączeniu weryfikacji SSL może być wymagany certyfikat głównego urzędu certyfikacji.
Masz różne opcje w następujący sposób (może nie być wyczerpujące, ale dla mnie zadziałały).
- Możesz umieścić go w domyślnym miejscu, np. ~/Postgres/root.crt LUB
- Ustaw
PGSSLROOTCERT
zmienna env do jej ścieżki LUB - importuj do zaufanego magazynu i przekaż jego ścieżkę jako:
-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password]
. Jeśli używasz domyślnego truststore, tj.cacerts
JRE te dwie zmienne env nie są wymagane.
Nr ref.:
https://jdbc.postgresql.org/documentation/head/ssl-client .html
https://www.postgresql.org/docs/9.0/libpq-ssl .html