GAE dev_appserver.py через HTTPS - PullRequest
       5

GAE dev_appserver.py через HTTPS

10 голосов
/ 13 января 2012

Кто-нибудь взломал, как заставить HTTPS работать на dev_appserver.py?Мне это нужно для тестирования приложения в Facebook.У меня был поиск в документах, и ничто не говорит о том, что есть способ сделать это (вставка «безопасный» в app.yaml ничего не делает локально)

Я подумал, что может быть способ прокси, но кто-нибудь получил опыт?

Ответы [ 3 ]

7 голосов
/ 16 января 2012

dev_appserver не поддерживает HTTPS. Единственный практический способ сделать это - установить обратный прокси-сервер перед вашим приложением, например, с помощью nginx или Apache, и передать ему трафик SSL через прокси-сервер.

1 голос
/ 03 марта 2014

Я знаю, что уже поздно , в случае, если кто-то еще найдет этот вопрос:

ngrok довольно легко настроить для настраиваемого обратного HTTPS-прокси ..

Единственным недостатком является то, что мое приложение webapp2 по-прежнему считает, что оно обслуживается по HTTP, поэтому использование redirect() не работает должным образом, поскольку оно разрешает относительные URL-адреса в абсолютные URL-адреса с использованием request.url.

Мой обходной путь состоял в том, чтобы переписать RequestHandler.redirect следующим образом:

class BaseRequestHandler(RequestHandler):
  def redirect(self, uri, permanent = False, abort = False, code = None, body = None):
    if uri.startswith(('.', '/')):
      base_url = self.request.url
      if base_url.startswith('http://'):
        base_url = 'https://' + base_url[7:]
      uri = str(urlparse.urljoin(base_url, uri))
    super(RequestHandler, self).redirect(uri, permanent, abort, code, body)

В любом случае мне был нужен класс BaseRequestHandler для реализации других служебных функций.

0 голосов
/ 25 сентября 2014

Я поместил это в мой Appache httpd.conf, чтобы прокси-соединение:

<Location /myproject/>
    ProxyPass http://localhost:8080/
</Location>

Теперь в моем браузере работает https://localhost/myproject/.

Примечание: необходимо включить SSLна вашем сервере Apache.На моей машине с OS X я раскомментировал строку Include /private/etc/apache2/extra/httpd-ssl.conf в /etc/apache2/httpd.conf и запустил sudo apachectl restart

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...