2010-01-22 14 views
12

Tengo una aplicación que usa HTTPS para algunas de sus rutas junto con el complemento ssl_requirement. Se implementó y está funcionando bien en producción.¿Cómo manejas SSL en desarrollo?

La pregunta es la mejor manera de manejar esto en el desarrollo, porque en este momento estoy simplemente cortar mi routes.rb para eliminar la clave :requirements y obviamente eso no es muy conveniente o elegante:

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

lugar ideal' Me gusta 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.

+0

¿Cómo es su entorno de desarrollo? – jonnii

+0

Lo pregunto, porque para aplicaciones más complicadas (por ejemplo, las que usan SSL), debe comenzar a pensar en tener un entorno más productivo en sus máquinas de desarrollo ... apache/pasajero, etc. ... – jonnii

+0

En este momento ejecutar Mongrel a través de 'script/server', pero no estoy en contra de cambiar a Passenger. Ejecuto Apache/Passenger en producción. –

Respuesta

7

No se preocupe por SSL en el desarrollo

Para un entorno de desarrollo, la OMI, que 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. En cuanto a sus rutas, yo simplemente mantener 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 se hace necesidad de poner a prueba su integración SSL está en su entornopuesta en escena - el lugar donde despliega justo antes de desplegar 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 esta misma manera.

+1

¡Gracias, no sé por qué no pensé en usar ese fragmento de código! –

7

Como sus aplicaciones de rieles se vuelven más complicadas y desea usar funciones avanzadas como SSL, su mejor opción es cambiar a un entorno de desarrollo que se asemeje más a su entorno de producción. Esto le permitirá crear sus propios certificados y pruebas SSL de una manera que reflejará la forma en que los usuarios utilizarán su aplicación.

Sugiero pasar al mismo servidor web que usa en producción, que ha mencionado es apache/pasajero.

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

+0

¡Realmente necesito verificar mi ortografía antes de publicar! – jonnii

Cuestiones relacionadas