Vào cuối năm 2012, mọi thứ dường như đã thay đổi. Mặc dù tài liệu vẫn còn ít, pg gem dường như tự động thương lượng SSL và các trình điều khiển jdbc có thể bị ép buộc sử dụng SSL.
Ứng dụng của tôi là ứng dụng MRI-jRuby kết hợp, truy cập heroku-postgres, một máy chủ postgresql đám mây yêu cầu 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)
Đá quý pg, dường như tự động thương lượng SSL. Tuy nhiên, bộ điều hợp JDBC thì không. MRI được kết nối với database.yml điển hình (không đề cập đến ssl), nhưng JDBC đã ném:
(FATAL: no pg_hba.conf entry for host "xx.xx.xx.xx", user "username", database "database", SSL off)
Cuối cùng tôi đã thử chỉ định chi tiết kết nối ở định dạng JDBC-URL và kết nối thành công:
# jruby database.yml
production:
adapter: jdbcpostgresql
url: jdbc:postgresql://host/database?user=user&password=password&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
(có thể không cần sslfactory cho tất cả các thiết lập)