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.