PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment se connecter à la base de données PostgreSQL via SSL ?

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.)

  1. Vous pouvez le placer à son emplacement par défaut, c'est-à-dire ~/Postgres/root.crt OU
  2. Définir PGSSLROOTCERT variable env à son chemin OU
  3. 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 les cacerts 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