I slutet av 2012 verkar saker ha förändrats. Även om dokumentationen fortfarande är sparsam, verkar pg-ädelsten autoförhandla SSL, och jdbc-drivrutinerna kan tvingas använda SSL.
Min app är en hybrid MRI-jRuby-app som får åtkomst till heroku-postgres, en molnpostgresql-server som kräver SSL.
# Gemfile.lock
pg (0.14.1)
activerecord-jdbc-adapter (1.2.2.1)
activerecord-jdbcpostgresql-adapter (1.2.2.1)
jdbc-postgres (9.1.901)
Pg-pärlan verkade autoförhandla SSL. Det gjorde dock inte JDBC-adaptern. MRI kopplad till en typisk database.yml (inget omnämnande av ssl), men JDBC kastade:
(FATAL: no pg_hba.conf entry for host "xx.xx.xx.xx", user "username", database "database", SSL off)
Jag försökte så småningom ange anslutningsdetaljerna i JDBC-URL-format, och anslutningen lyckades:
# jruby database.yml
production:
adapter: jdbcpostgresql
url: jdbc:postgresql://host/database?user=user&password=password&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
(sslfactory kanske inte behövs för alla inställningar)