2010-01-22 10 views
12

Ich habe eine Anwendung, die HTTPS für einige seiner Routen in Verbindung mit dem ssl_requirement Plugin verwendet. Es ist im Einsatz und funktioniert gut in der Produktion.Wie gehen Sie mit SSL in der Entwicklung um?

Die Frage ist, wie dies am besten in der Entwicklung zu handhaben, denn im Moment habe ich einfach bin mein routes.rb Hacking die :requirements Schlüssel zu entfernen, und das ist natürlich nicht sehr bequem oder elegant:

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

Ideal I‘ Ich möchte in der Lage sein, die sicheren Teile meiner Anwendung in Entwicklung auf Mongrel ohne irgendwelche Änderungen laufen zu lassen. Wie kann ich das erreichen? Ich verwende Mac OS X.

+0

Wie ist Ihre Entwicklungsumgebung? – jonnii

+0

Ich frage das, denn für kompliziertere Anwendungen (zum Beispiel solche, die SSL verwenden), müssen Sie beginnen, über eine mehr produktionsähnliche Umgebung auf Ihren Dev-Maschinen zu denken ... Apache/Passagier etc ... – jonnii

+0

Im Moment ich starte Mongrel über 'script/server', aber ich bin nicht abgeneigt, zu Passenger zu wechseln. Ich betreibe Apache/Passenger in der Produktion. –

Antwort

7

Keine Sorge über SSL nicht

Für eine Entwicklungsumgebung, IMO in der Entwicklung, Sie SSL nicht ausführen müssen. Es lohnt sich nicht die Zeit oder Mühe, vor allem wenn mehr Leute dem Team beitreten. Mit Bezug auf Ihre Routen, ich würde einfach das Protokoll als http in der Entwicklungsumgebung halten:

protocol = Rails.env.development? ? "http" : "https" 

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

Jetzt, wo Sie Notwendigkeit tun Ihre SSL-Integration zu testen, ist auf Ihrer Staging Umgebung - der Ort, Hier stellen Sie die Bereitstellung kurz vor der Bereitstellung in der Produktion bereit. Hier möchten Sie Ihre Produktionsumgebung genau replizieren. Ihre Entwicklungsumgebung muss nicht auf dieselbe Weise mit Ihrer Produktionsumgebung übereinstimmen.

+1

Danke, ich weiß nicht, warum ich nicht daran gedacht habe, dieses Code-Snippet zu verwenden! –

7

Da Ihre Rails-Anwendungen komplizierter werden und Sie erweiterte Funktionen wie SSL verwenden möchten, sollten Sie in eine Entwicklungsumgebung wechseln, die besser zu Ihrer Produktionsumgebung passt. Dadurch können Sie Ihre eigenen SSL-Zertifikate erstellen und auf eine Weise testen, die die Art widerspiegelt, wie Ihre Benutzer Ihre Anwendung verwenden.

Ich schlage vor, auf den gleichen Webserver zu wechseln, den Sie in der Produktion verwenden, den Sie erwähnt haben, ist Apache/Beifahrer.

In einer verwandten Frage ... Wie verwalten Sie Ihre Testumgebung mit ssl? Dafür hacke ich gerade meine Routen, wie du es tust. Gibt es einen besseren Weg?

+0

Ich muss wirklich meine Rechtschreibung überprüfen, bevor ich den Beitrag schlage! – jonnii

Verwandte Themen