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?



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 .


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 .


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.