PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

pg gem sslmode=verify-full, dove inserire i certificati?

Il Pg gem usa libpq internamente, la stessa libreria client degli strumenti PostgreSQL come psql .

Per impostazione predefinita libpq cerca in ~/.postgresql/ per il certificato CA.

Da il manuale :

... e ...

AFAIK Rails passa tutto ciò che inserisci nel tuo database.yml al Pg gem, che lo passa a libpq come parametro di connessione. Quindi dovresti essere in grado di aggiungere voci chiave/valore al tuo database.yml strofe come:

sslmode: verify-full
# and if you don't want to use ~/.postgresq/root.crt for the cert location, set:
sslrootcert: /path/to/my/app/root/cert.crt

IMO il requisito per passare un singolo certificato di root a libpq è un difetto di progettazione. Dovrebbe caricare un database di certificati affidabile. Esistono problemi simili per l'uso dei certificati client SSL, in cui non è possibile fornire un keystore e un cert store, è necessario passare file specifici per un determinato host. Sembra che probabilmente per te vada bene poiché conosci l'autorità di firma del certificato a monte.