Pg
gem używa libpq
wewnętrznie ta sama biblioteka klienta, co narzędzia PostgreSQL, takie jak psql
.
Domyślnie libpq
wygląda w ~/.postgresql/
dla certyfikatu CA.
Z instrukcji :
... i ...
AFAIK Rails przekazuje wszystko, co umieścisz w swoim database.yml
do Pg
gem, który przekazuje go do libpq
jako parametr połączenia. Powinieneś więc móc dodawać wpisy klucz/wartość do pliku database.yml
zwrotki takie jak:
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 wymóg przekazania pojedynczego certyfikatu głównego do libpq
jest wadą projektową. Powinien załadować bazę zaufanych certyfikatów. Podobne problemy występują w przypadku korzystania z certyfikatów klienta SSL, gdzie nie można podać magazynu kluczy i magazynu certyfikatów, należy przekazać określone pliki dla danego hosta. Wygląda na to, że to prawdopodobnie w porządku, ponieważ znasz nadrzędny urząd podpisywania certyfikatów.