it-swarm.com.de

Verwenden von psql zum Herstellen einer Verbindung zu postgresql im ssl-Modus

Ich versuche ein SSL-Zertifikat für den PostgreSQL-Server zu konfigurieren. Ich habe eine Zertifikatsdatei (server.crt) und einen Schlüssel (server.key) im Datenverzeichnis erstellt und den Parameter SSL auf "on" gesetzt, um eine sichere Verbindung zu ermöglichen. 

Ich möchte nur, dass der Server mit Serverzertifikaten auf der Clientseite authentifiziert wird und nicht die Authentizität des Clients auf der Serverseite erfordert. Ich verwende psql als Client, um die Befehle zu verbinden und auszuführen.

Ich benutze PostgreSQL 8.4 und Linux. Ich habe mit dem folgenden Befehl versucht, eine Verbindung zum Server herzustellen, bei dem SSL aktiviert ist

       psql "postgresql://localhost:2345/postgres?sslmode=require"

aber ich bekomme 

       psql: invalid connection option "postgresql://localhost:2345/postgres?sslmode"

Was mache ich hier falsch? Ist die Art und Weise, wie ich versuche, eine Verbindung zu einem Server herzustellen, bei dem der SSL-Modus aktiviert ist, richtig? Ist es in Ordnung, nur den Server und nicht den Client zu authentifizieren? 

Bitte hilf mir.

49
Mojoy

psql unter 9.2 akzeptiert diese URL-ähnliche Syntax für Optionen nicht. 

Die Verwendung von SSL kann durch die Option sslmode=value in der Befehlszeile oder durch die Umgebungsvariable PGSSLMODE gesteuert werden. Die Standardeinstellung ist prefer. SSL-Verbindungen werden zuerst automatisch ohne Angabe von Werten versucht.

Beispiel mit einem conninfo-String (aktualisiert für psql 8.4)

psql "sslmode=require Host=localhost dbname=test"

Lesen Sie die Handbuchseite für weitere Optionen.

79
Daniel Vérité
psql --set=sslmode=require -h localhost -p 2345 -U thirunas \
-d postgres -f test_schema.ddl
9
Andrii Batiuk
psql -h <Host> -p <port> -U <user> -d <db>

und aktualisieren Sie /var/lib/pgsql/10/data/pg_hba.conf, um die Authentifizierungsmethode in cert zu ändern. Überprüfen Sie den folgenden Link für weitere Informationen:

https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html

0
WesternGun

psql "sslmode=require Host=localhost port=2345 dbname=postgres" --username=some_user 

Gemäß der postgres-Dokumentation zu psql sollten nur die Verbindungsparameter in die Zeichenfolge conninfo eingetragen werden (aus diesem Grund befindet sich --username in diesem Beispiel nicht in dieser Zeichenfolge).

0
Komu