¿Cómo manejas SSL en desarrollo?

Tengo una aplicación que utiliza HTTPS para algunas de sus rutas junto con el complemento ssl_requirement . Está desplegado y está funcionando bien en producción.

La pregunta es cuál es la mejor manera de manejar esto en el desarrollo, porque en este momento simplemente estoy pirateando mis routes.rb para eliminar la clave de :requirements y obviamente eso no es muy conveniente ni elegante:

 map.resource :session, :controller => 'session', :only => [:new, :create, :destroy], :requirements => { :protocol => 'https' } 

Idealmente, me gustaría poder ejecutar las partes seguras de mi aplicación en desarrollo en Mongrel sin ningún cambio. ¿Cómo puedo conseguir esto? Estoy usando Mac OS X.

No te preocupes por SSL en desarrollo

Para un entorno de desarrollo, IMO, no es necesario ejecutar SSL. No vale la pena el tiempo ni la molestia, especialmente a medida que más personas se unen al equipo. Con respecto a sus rutas, simplemente mantendría el protocolo como http en el entorno de desarrollo:

 protocol = Rails.env.development? ? "http" : "https" map.resource :session, :controller => 'session', :only => [:new, :create, :destroy], :requirements => { :protocol => protocol } 

Ahora, donde necesita probar su integración SSL es en su entorno de almacenamiento : el lugar donde se implementa justo antes de implementarlo en producción. Aquí es donde desea replicar con precisión su entorno de producción. Su entorno de desarrollo no necesita coincidir con su entorno de producción de la misma manera.

A medida que las aplicaciones de Rails se vuelven más complicadas y desea utilizar funciones avanzadas como SSL, lo mejor es cambiar a un entorno de desarrollo que se adapte más a su entorno de producción. Esto le permitirá crear sus propios certificados SSL y realizar pruebas que reflejarán la forma en que los usuarios utilizarán su aplicación.

Le sugiero que se mueva al mismo servidor web que utiliza en la producción, que ha mencionado es apache / pasajero.

En una pregunta relacionada … ¿cómo gestionas tu entorno de prueba con ssl? Para esto estoy actualmente hackeando mis rutas mientras lo haces. ¿Hay alguna manera mejor?