Есть ли простой способ сделать паузу https? - PullRequest
36 голосов
/ 24 мая 2011

pow отлично, но многие вещи в моем приложении предполагают https, и было бы больно просматривать их все и добавлять «если не среда разработки». Возможно ли, чтобы Pow служил https?

Ответы [ 7 ]

48 голосов
/ 26 октября 2012

Самый простой способ, который я нашел, это использовать Туннели: https://github.com/jugyo/tunnels

$ gem install tunnels
$ rvmsudo tunnels   # or just use sudo if using rbenv

Конфигурация не требуется.

16 голосов
/ 16 августа 2013

Вариант 1: Завершить Pow с Tunnelss

У меня возникла проблема с решением Tunnels , что здорово, но будетбыть замеченным как небезопасным браузером , что вызывает головную боль при игре, например, с CORS.

Я тестировал решение PowSSL (решение, использующее Stud), но в нем отсутствовал HTTP_X_FORWARDED_PROTO, что вызовет еще один приступ головной боли, когда вашему приложению нужно будет узнать, было ли оно запрошено через HTTP или HTTPS (ну, оно никогда не узнает, что это HTTPS).

Но этот более поздний подход был великолепен, поскольку он генерировал действительный сертификат для всех настроенных доменов POW .dev!

Итак, я построил tunnelss , который сочетает в себе два подхода : это ветвь туннелей и добавляет генерацию сертификатов!

Надеюсь, вам понравится, не стесняйтесь отправлять запросы извлечения, если вы хотите завершитьэто просто быстрый взлом, работающий на MacOS X на данный момент ...

Вариант 2: переключиться на Invoker (используя мой форк ... сейчас)

Invoker - отличная замена Pow, поскольку он изначально включает поддержку HTTPS. Вам не нужно добавлять другое решение поверх Pow, чтобы получить HTTPS!

ОднакоПо сравнению с Pow, я обнаружил, что у него есть 2 ограничения:

  • вы должны указать команду для каждого процесса, чтобы он мог его запустить,
  • вы не можете иметьправило по умолчанию, обрабатывающее все запросы к localhost и передающее их конкретному приложению.

Эти ограничения было несложно преодолеть, и я сделал запрос на получение с двумя изменениями.Пока она не будет принята, вы можете установить разветвленную версию, используя:

git clone https://github.com/rchampourlier/invoker invoker -b proxy-only-mode
cd invoker
gem build invoker.gemspec
gem install invoker-1.5.0.gem

С помощью этого форка вы сможете использовать глобальную конфигурацию, например ~/.invoker.ini, например, такую:

[my-rails-app]
port = 3000

[my-sinatra-app]
port = 9292

[default]
port = 9292

... и запустите Invoker как прокси с этой командой:

invoker ~/.invoker.ini -d
7 голосов
/ 14 июля 2011

Используйте stunnel для создания туннеля к серверу pow.

Как:

stunnel3 -f -d 443 -r 127.0.0.1:80
7 голосов
/ 24 мая 2011

Военнопленный в настоящее время не поддерживает SSL (https://github.com/37signals/pow/issues/5). Однако у ряда других людей есть такое же желание, поэтому мы надеемся, что оно будет включено в будущий выпуск!

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

Редактировать:

Последнее обновление заключается в том, что POW может быть настроен с SSL с использованием Nginx, как описано в следующем руководстве:

https://gist.github.com/gvarela/928606/

5 голосов
/ 16 марта 2012

Я недавно создал скрипт, который использует туннель для этого.https://gist.github.com/2050941#file_gistfile1.md

3 голосов
/ 09 июня 2011

В настоящее время есть способ использовать SSL при использовании POW, настроив прокси-сервер SSL через nginx.

Посмотрите: http://shiny -bits-of-code.tumblr.com / post / 4749553253 / ssl-proxy-with-nginx

0 голосов
/ 24 августа 2012

Это также хорошо освещено здесь:

http://railscasts.com/episodes/352-securing-an-api

...