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.