url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
Remarque :si schema_name
est public
, ce n'est pas obligatoire. Mais le port même s'il est par défaut, c'est-à-dire 5432, vous devez le fournir.
Pour les valeurs sslmode ref :https://jdbc.postgresql.org/documentation/ head/ssl-client.html
définir sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory
pour activer la validation.
Pour une connexion ssl non validante, vous pouvez utiliser sslfactory=org.postgresql.ssl.NonValidatingFactory
Mais n'oubliez pas qu'une fois que vous avez activé la validation SSL, un certificat CA racine peut être nécessaire.
Vous avez différentes options comme suit (peut ne pas être exhaustive, mais celles-ci ont fonctionné pour moi.)
- Vous pouvez le placer à son emplacement par défaut, c'est-à-dire ~/Postgres/root.crt OU
- Définir
PGSSLROOTCERT
variable env à son chemin OU - importer dans un truststore et lui transmettre le chemin sous la forme :
-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password]
. Si vous utilisez le truststore par défaut, c'est-à-dire lescacerts
de JRE ces deux variables d'environnement ne sont pas obligatoires.
Réf :
https://jdbc.postgresql.org/documentation/head/ssl-client .html
https://www.postgresql.org/docs/9.0/libpq-ssl .html