I slutningen af 2012 ser tingene ud til at have ændret sig. Selvom dokumentationen stadig er sparsom, ser pg-perlen ud til at autoforhandle SSL, og jdbc-driverne kan tvinges til at bruge SSL.
Min app er en hybrid MRI-jRuby-app, der tilgår heroku-postgres, en cloud-postgresql-server, der 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-perlen så ud til at autoforhandle SSL. Det gjorde JDBC-adapteren dog ikke. MRI forbundet med en typisk database.yml (ingen omtale af ssl), men JDBC kastede:
(FATAL: no pg_hba.conf entry for host "xx.xx.xx.xx", user "username", database "database", SSL off)
Jeg prøvede til sidst at angive forbindelsesdetaljerne i JDBC-URL-format, og forbindelsen lykkedes:
# jruby database.yml
production:
adapter: jdbcpostgresql
url: jdbc:postgresql://host/database?user=user&password=password&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
(sslfactory er muligvis ikke nødvendig for alle opsætninger)