url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
Забележка:ако schema_name
е public
, не е задължително. Но портът, дори ако е по подразбиране, т.е. 5432, трябва да го предоставите.
За стойности на sslmode справка:https://jdbc.postgresql.org/documentation/ head/ssl-client.html
задайте sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
за да активирате валидирането.
За невалидираща ssl връзка можете да използвате sslfactory=org.postgresql.ssl.NonValidatingFactory
Но не забравяйте, че след като активирате SSL валидирането, може да изисква основен CA сертификат.
Имате различни опции, както следва (може да не е изчерпателно, но те свършиха работа за мен.)
- Можете да го поставите на мястото му по подразбиране, т.е. ~/Postgres/root.crt ИЛИ
- Задайте
PGSSLROOTCERT
env променлива към нейния път ИЛИ - импортиране в доверително хранилище и предаване на пътя като:
-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password]
. Ако използвате доверително хранилище по подразбиране, т.е.cacerts
на JRE тези две env променливи не са необходими.
Справка:
https://jdbc.postgresql.org/documentation/head/ssl-client .html
https://www.postgresql.org/docs/9.0/libpq-ssl .html