В края на 2012 г. нещата изглежда са се променили. Въпреки че документацията все още е оскъдна, pg gem изглежда автоматично договаря SSL и jdbc драйверите могат да бъдат принудени да използват SSL.
Моето приложение е хибридно приложение за MRI-jRuby, което има достъп до heroku-postgres, облачен postgresql сървър, който изисква 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 сякаш автоматично договаряше SSL. JDBC адаптерът обаче не го направи. ЯМР е свързан с типична база данни.yml (без споменаване на ssl), но JDBC хвърли:
(FATAL: no pg_hba.conf entry for host "xx.xx.xx.xx", user "username", database "database", SSL off)
В крайна сметка се опитах да посоча подробностите за връзката във формат JDBC-URL и връзката беше успешна:
# jruby database.yml
production:
adapter: jdbcpostgresql
url: jdbc:postgresql://host/database?user=user&password=password&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
(sslfactory може да не е необходим за всички настройки)