PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

unterstützt der rails postgres adapter ssl?

Ende 2012 scheinen sich die Dinge geändert zu haben. Obwohl die Dokumentation immer noch spärlich ist, scheint das pg-Gem SSL automatisch auszuhandeln, und die jdbc-Treiber können dazu gezwungen werden, SSL zu verwenden.

Meine App ist eine hybride MRI-jRuby-App, die auf Heroku-Postgres zugreift, einen Cloud-Postgresql-Server, der SSL erfordert.

# 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)

Das pg gem schien SSL automatisch auszuhandeln. Der JDBC-Adapter jedoch nicht. MRI verbunden mit einer typischen database.yml (keine Erwähnung von ssl), aber JDBC warf:

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

Ich habe schließlich versucht, die Verbindungsdetails im JDBC-URL-Format anzugeben, und die Verbindung war erfolgreich:

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

(ssfactory wird möglicherweise nicht für alle Setups benötigt)