Как вы обрабатываете SSL в разработке?
У меня есть приложение, которое использует HTTPS для некоторых своих маршрутов в сочетании с плагином ssl_requirement. Он развернут и отлично работает в производстве.
Вопрос в том, как лучше всего справиться с этим в процессе разработки, потому что на данный момент я просто взламываю свой routes.rb
, чтобы удалить ключ :requirements
и, очевидно, что это не очень удобно или элегантно:
map.resource :session, :controller => 'session',
:only => [:new, :create, :destroy],
:requirements => { :protocol => 'https' }
В идеале я хотел бы иметь возможность запускать защищенные части моего приложения в разработке на Mongrel без каких-либо изменений. Как я могу это достичь? Я использую Mac OS X.
Ответы
Ответ 1
Не беспокойтесь о SSL в разработке
Для среды разработки, IMO, вам не нужно запускать SSL. Это не стоит времени или хлопот, тем более что все больше людей присоединяются к команде. Что касается ваших маршрутов, я бы просто сохранил протокол http
в среде разработки:
protocol = Rails.env.development? ? "http" : "https"
map.resource :session, :controller => 'session',
:only => [:new, :create, :destroy],
:requirements => { :protocol => protocol }
Теперь, когда вам нужно проверить, что ваша интеграция с SSL находится в вашей промежуточной среде - месте, где вы развертываете только до развертывания на производстве. Здесь вы хотите точно воспроизвести производственную среду. Таким образом, ваша среда разработки не должна соответствовать вашей производственной среде.
Ответ 2
По мере того, как ваши приложения с рельсами становятся более сложными, и вы хотите использовать расширенные функции, такие как SSL, лучше всего перейти на среду разработки, которая более точно соответствует вашей производственной среде. Это позволит вам создать свои собственные сертификаты SSL и протестировать таким образом, чтобы отразить то, как ваши пользователи будут использовать ваше приложение.
Я предлагаю перейти на тот же веб-сервер, который вы используете в производстве, о котором вы говорили, это apache/пассажир.
В связанном вопросе... как вы управляете своей тестовой средой с помощью ssl? Для этого я сейчас взламываю свои маршруты, как вы делаете. Есть ли лучший способ?