Bagaimana cara menentukan sertifikat klien untuk psql?


11

Saya memiliki server Postgres dengan pengguna devyang memerlukan sertifikat klien untuk masuk. Saya menggunakan perintah psql "sslmode=require user=dev host=db.prod", yang memberi saya psql: FATAL: connection requires a valid client certificate.

Saya tahu di mana sertifikat berada di server saya. Pertanyaan saya adalah, bagaimana cara menentukan lokasi sertifikat klien psql?



Jawaban:


8

Seperti yang dinyatakan dalam dokumentasi yang ditautkan oleh @Milen, Anda dapat melakukan ini dengan menyetel variabel lingkungan PGSSLCERTdan PGSSLKEY, atau dengan menambahkan sslcert=<cert location> sslkey=<key location>ke string koneksi.


2
Saya akan mencatat di sini bahwa PGSSLCERTdan PGSSLKEYjuga memungkinkan jalur untuk ditentukan, jadi jangan catsertifikat atau kunci itu sendiri ke dalam variabel tersebut.
SeldomNeedy

8

Hasil akhirnya terlihat seperti $>psql "port=5431 host=localhost user=postgres sslcert=./test/client.crt sslkey=./test/client.key sslrootcert=./test/server.crt sslmode=verify-ca"

Semua variabel ada di sini .


jika saya menempatkan root crt di ~ / .postgreqsl / saya tidak harus memberikan kunci apa pun. Jika saya meletakkannya di tempat lain dan memberikan sslrootcert, tiba-tiba saya juga harus memberikan kunci - apakah Anda tahu bagaimana cara kerjanya?
Radu Simionescu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.