sql >> Database >  >> RDS >> PostgreSQL

Hoe verbinding maken met de PostgreSQL-database via SSL?

url=jdbc:postgresql://<host_url_or_ip>:<port>/<db_name>?currentSchema=<schema_name>&sslmode=verify-ca&sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory

Opmerking:als schema_name is public , is niet vereist. Maar zelfs als de poort standaard is, d.w.z. 5432, moet u deze opgeven.

Voor sslmode-waarden zie:https://jdbc.postgresql.org/documentation/ head/ssl-client.html set sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory om validatie mogelijk te maken.

Voor een niet-validerende ssl-verbinding kunt u sslfactory=org.postgresql.ssl.NonValidatingFactory gebruiken

Maar vergeet niet dat als u SSL-validatie eenmaal inschakelt, er mogelijk een root-CA-certificaat nodig is.

Je hebt de volgende verschillende opties (misschien niet uitputtend, maar deze werkten voor mij.)

  1. Je kunt het op de standaardplaats plaatsen, bijv. ~/Postgres/root.crt OF
  2. Stel PGSSLROOTCERT in env variabele naar zijn pad OF
  3. importeer in een truststore en geef het pad door als:-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password] . Als u standaard truststore gebruikt, d.w.z. JRE's cacerts deze twee env-variabelen zijn niet vereist.

Ref:

https://jdbc.postgresql.org/documentation/head/ssl-client .html

https://www.postgresql.org/docs/9.0/libpq-ssl .html



  1. Query om telling per uur op te halen en nul indien geen

  2. De primaire sleutel van SQL kan '0' accepteren?

  3. Tijdsverschil binnen kantooruren

  4. Voorwaardelijke CASCADE-bewerking voor externe sleutelbeperking?