PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie verbinde ich mich mit der PostgreSQL-Datenbank über SSL?

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

Hinweis:Wenn schema_name ist public , es ist nicht notwendig. Aber auch wenn der Port standardmäßig 5432 ist, müssen Sie ihn angeben.

Für sslmode-Werte siehe:https://jdbc.postgresql.org/documentation/ head/ssl-client.html setzen Sie sslfactory=org.postgresql.ssl.DefaultJavaSSLFactory Validierung zu ermöglichen.

Für eine nicht validierende SSL-Verbindung können Sie sslfactory=org.postgresql.ssl.NonValidatingFactory verwenden

Denken Sie jedoch daran, dass nach der Aktivierung der SSL-Validierung möglicherweise ein Root-CA-Zertifikat erforderlich ist.

Sie haben verschiedene Optionen wie folgt (möglicherweise nicht vollständig, aber diese haben bei mir funktioniert.)

  1. Sie können es an seinem Standardort platzieren, z. B. ~/Postgres/root.crt ODER
  2. Legen Sie PGSSLROOTCERT fest env-Variable zu ihrem Pfad ODER
  3. in einen Truststore importieren und Pfad wie folgt übergeben:-Djavax.net.ssl.trustStore=[trust_store_path] -Djavax.net.ssl.trustStorePassword=[trust_store_password] . Wenn Sie den Standard-Truststore verwenden, d. h. die cacerts von JRE diese beiden env-Variablen sind nicht erforderlich.

Ref:

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

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