PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

l'adaptateur rails postgres prend-il en charge SSL?

Fin 2012, les choses semblent avoir changé. Bien que la documentation soit encore clairsemée, la gemme pg semble auto-négocier SSL, et les pilotes jdbc peuvent être contraints d'utiliser SSL.

Mon application est une application hybride MRI-jRuby, qui accède à heroku-postgres, un serveur cloud postgresql qui nécessite 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 gemme pg semblait auto-négocier SSL. Cependant, l'adaptateur JDBC ne l'a pas fait. MRI connecté avec une base de données typique.yml (aucune mention de ssl), mais JDBC a lancé :

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

J'ai finalement essayé de spécifier les détails de connexion au format JDBC-URL, et la connexion a réussi :

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

(sslfactory peut ne pas être nécessaire pour toutes les configurations)