Le Pg
gem utilise libpq
en interne, la même bibliothèque cliente que les outils PostgreSQL comme psql
.
Par défaut libpq
regarde dans ~/.postgresql/
pour le certificat CA.
Depuis le manuel :
... et ...
AFAIK Rails transmet tout ce que vous mettez dans votre database.yml
à la Pg
gem, qui le transmet à libpq
comme paramètre de connexion. Vous devriez donc pouvoir ajouter des entrées clé/valeur à votre database.yml
des strophes comme :
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 l'exigence de transmettre un seul certificat racine à libpq
est un défaut de conception. Il devrait charger une base de données de certificats de confiance. Des problèmes similaires existent pour l'utilisation de certificats client SSL, où vous ne pouvez pas fournir de magasin de clés et de magasin de certificats, vous devez transmettre des fichiers spécifiques pour un hôte donné. Il semble que cela vous convienne puisque vous connaissez l'autorité de signature de certificat en amont.