PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

pg gem sslmode=verify-full, où placer les certificats ?

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.