A
Pg gem usa libpq internamente, a mesma biblioteca cliente das ferramentas PostgreSQL como psql . Por padrão
libpq procura em ~/.postgresql/ para o certificado CA. Do manual :
... e ...
O AFAIK Rails passa tudo o que você coloca em seu
database.yml para a Pg gem, que o passa para libpq como parâmetro de conexão. Portanto, você deve poder adicionar entradas de chave/valor ao seu database.yml estrofes como: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 o requisito de passar um único certificado raiz para
libpq é uma falha de projeto. Ele deve carregar um banco de dados de certificado confiável. Existem problemas semelhantes para o uso de certificados de cliente SSL, em que você não pode fornecer um keystore e um repositório de certificados, deve passar arquivos específicos para um determinado host. Parece que provavelmente está tudo bem para você, pois você conhece a autoridade de assinatura de certificado upstream.