Encontré el problema. Simplemente pasando
ssl = true
no es suficiente para JDBC, también debe instalar los certificados raíz correctos en su almacén de claves de Java para que PgJDBC pueda verificar el certificado remoto.
Si no desea configurar el almacén de certificados raíz, puede pasar:
ssl = true
sslfactory = org.postgresql.ssl.NonValidatingFactory
aunque hacerlo deshabilita la protección contra ataques man-in-the-middle , por lo que su sesión SSL ya no tiene una seguridad confiable de extremo a extremo.
Vea los documentos de Heroku aquí:
(Advertencia sobre seguridad SSL agregada por Craig Ringer)