PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

pg gem sslmode=verify-full, wo Zertifikate platzieren?

Das Pg gem verwendet libpq intern dieselbe Client-Bibliothek wie die PostgreSQL-Tools wie psql .

Standardmäßig libpq sucht in ~/.postgresql/ für das CA-Zertifikat.

Aus dem Handbuch :

... und ...

AFAIK Rails übergibt alles, was Sie in Ihre database.yml einfügen auf Pg gem, das es an libpq übergibt als Verbindungsparameter. Sie sollten also Schlüssel/Wert-Einträge zu Ihrer database.yml hinzufügen können Strophen wie:

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 die Anforderung, ein einzelnes Stammzertifikat an libpq zu übergeben ist ein Konstruktionsfehler. Es sollte eine vertrauenswürdige Zertifikatsdatenbank laden. Ähnliche Probleme bestehen bei der Verwendung von SSL-Clientzertifikaten, bei denen Sie keinen Keystore und keinen Zertifikatspeicher bereitstellen können, sondern bestimmte Dateien für einen bestimmten Host übergeben müssen. Es hört sich so an, als wäre das wahrscheinlich in Ordnung für Sie, da Sie die Upstream-Zertifikat-Signaturstelle kennen.