sql >> Base de Datos >  >> RDS >> PostgreSQL

¿El adaptador Rails Postgres es compatible con SSL?

A finales de 2012, las cosas parecen haber cambiado. Aunque la documentación aún es escasa, la gema pg parece negociar automáticamente SSL, y los controladores jdbc pueden ser forzados a usar SSL.

Mi aplicación es una aplicación híbrida MRI-jRuby, que accede a heroku-postgres, un servidor postgresql en la nube que requiere 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)

La gema pg parecía autonegociar SSL. Sin embargo, el adaptador JDBC no lo hizo. MRI conectado con una base de datos típica.yml (sin mención de ssl), pero JDBC arrojó:

(FATAL: no pg_hba.conf entry for host "xx.xx.xx.xx", user "username", database "database", SSL off)

Eventualmente intenté especificar los detalles de la conexión en formato JDBC-URL y la conexión tuvo éxito:

# jruby database.yml
production:
  adapter: jdbcpostgresql
  url: jdbc:postgresql://host/database?user=user&password=password&ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory

(es posible que no se necesite sslfactory para todas las configuraciones)