Wie gebe ich ein Client-Zertifikat für psql an?

10

Ich habe einen Postgres-Server mit einem Benutzer, für devdessen Anmeldung ein Client-Zertifikat erforderlich ist. Ich verwende den Befehl psql "sslmode=require user=dev host=db.prod", der mir gegeben wird psql: FATAL: connection requires a valid client certificate.

Ich weiß, wo sich das Zertifikat auf meinem Server befindet. Meine Frage ist, wie kann ich den Speicherort des Client-Zertifikats angeben psql?

Jorn
quelle

Antworten:

8

Wie in der von @Milen verknüpften Dokumentation angegeben, können Sie dies tun, indem Sie die Variablen PGSSLCERTund und PGSSLKEYumgebungsvariablen festlegen oder sslcert=<cert location> sslkey=<key location>der Verbindungszeichenfolge hinzufügen .

Jorn
quelle
2
Ich werde hier darauf hinweisen PGSSLCERTund PGSSLKEYauch die Angabe von Pfaden zulassen , also nicht catdas Zertifikat oder den Schlüssel selbst in diese Variablen.
Selten Needy
8

Das Endergebnis sieht aus wie $>psql "port=5431 host=localhost user=postgres sslcert=./test/client.crt sslkey=./test/client.key sslrootcert=./test/server.crt sslmode=verify-ca"

Alle Variablen sind hier .

Olivier D.
quelle
Wenn ich root crt in ~ / .postgreqsl / platziere, muss ich keinen Schlüssel angeben. Wenn ich es woanders platziere und sslrootcert zur Verfügung stelle, muss ich plötzlich auch den Schlüssel angeben - wissen Sie, wie das funktioniert?
Radu Simionescu