Как вы справляетесь с SSL при разработке? - PullRequest
12 голосов
/ 22 января 2010

У меня есть приложение, которое использует HTTPS для некоторых своих маршрутов в сочетании с плагином ssl_requirement . Он развернут и нормально работает на производстве.

Вопрос в том, как лучше всего справиться с этим в процессе разработки, потому что в данный момент я просто взламываю свой routes.rb, чтобы удалить ключ :requirements, и, очевидно, это не очень удобно и не элегантно:

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

В идеале я хотел бы иметь возможность запускать безопасные части моего приложения при разработке на Mongrel без каких-либо изменений. Как мне этого добиться? Я использую Mac OS X.

Ответы [ 2 ]

8 голосов
/ 22 января 2010

Не беспокойтесь о SSL в разработке

Для среды разработки, IMO, вам не нужно запускать SSL. Это не стоит ни времени, ни хлопот, тем более что в команду вступает больше людей. Что касается ваших маршрутов, я бы просто сохранил протокол как http в среде разработки:

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

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

Теперь, когда вам нужно проверить, что ваша интеграция SSL находится в вашей промежуточной среде - месте, в котором вы развертываетесь непосредственно перед развертыванием на производстве. Здесь вы хотите точно воспроизвести свою производственную среду. Ваша среда разработки не должна соответствовать вашей производственной среде таким же образом.

7 голосов
/ 22 января 2010

Поскольку ваши приложения rails становятся все более сложными, и вы хотите использовать расширенные функции, такие как SSL, вам лучше всего перейти на среду разработки, которая более соответствует вашей производственной среде. Это позволит вам создавать свои собственные сертификаты SSL и тестировать их так, чтобы они отражали то, как ваши пользователи будут использовать ваше приложение.

Я предлагаю перейти на тот же веб-сервер, который вы используете в производственной среде, который вы упомянули как apache / passenger.

В связанном вопросе ... как вы управляете своей тестовой средой с помощью ssl? Для этого я сейчас хакую свои маршруты, как ты. Есть ли лучший способ?

...