Ich habe einen Postgres-Server mit einem Benutzer, für dev
dessen 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:
Wie in der von @Milen verknüpften Dokumentation angegeben, können Sie dies tun, indem Sie die Variablen
PGSSLCERT
und undPGSSLKEY
umgebungsvariablen festlegen odersslcert=<cert location> sslkey=<key location>
der Verbindungszeichenfolge hinzufügen .quelle
PGSSLCERT
undPGSSLKEY
auch die Angabe von Pfaden zulassen , also nichtcat
das Zertifikat oder den Schlüssel selbst in diese Variablen.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 .
quelle