2012-01-13 24 views
8

HTTPS'yi dev_appserver.py üzerinde nasıl çalıştıracak herhangi biri kırıldı mı? Facebook tuval uygulaması testi için buna ihtiyacım var. Dokümanlar hakkında bir araştırma yaptım ve hiçbir şey yapmanın bir yolu olmadığını ima etmiyor (app.yaml dosyasında 'güvenli' yapıştırma yerel olarak hiçbir şey yapmıyor).GAE dev_appserver.py üzerinde HTTPS

Bunu proxy yapmanın bir yolu olabileceğini düşünüyordum, ama bununla ilgili herhangi bir deneyimi oldu mu?

cevap

6

Dev_appserver HTTPS'yi desteklemiyor. Bunu yapmanın tek pratik yolu, uygulamanızın ön tarafında ters bir proxy oluşturmak (nginx veya Apache gibi) ve uygulamanıza proxy SSL trafiği sağlamaktır.

+0

'u nasıl çalıştırdınız? Ve bunu nasıl yaptınız? –

+2

@AhmedNuaman Bu farklı bir soru - ve sunucufault.com için bir, Stack Overflow değil. –

1

ben bu başka vaka biri içeri geç olduğunu biliyoruz bu soruyu bulur:

ngrok bir özel için kurulumu kolay sessiz ters HTTPS proxy ..

tek dezavantajı benim webapp2 uygulaması olduğunu hala HTTP üzerinden sunulmakta olduğuna inanmaktadır, bu nedenle redirect() kullanımı, request.url kullanarak göreli URL'leri mutlak URL'lere çözdüğü için iyi çalışmaz.

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) 

Diğer yarar fonksiyonları uygulamak için her durumda bir BaseRequestHandler sınıf gerektiği şu şekildedir:

Benim geçici çözüm RequestHandler.redirect üzerine yazmak oldu. Tarayıcım çalıştı içinde

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

Şimdi https://localhost/myproject/ olacak:

0

Ben proxy benim appache httpd.conf bağlantıyı koyun.

Not: SSL'nin Apache sunucunuzda etkinleştirilmiş olması gerekir. OS X makinemde /etc/apache2/httpd.conf dosyasında Include /private/etc/apache2/extra/httpd-ssl.conf hattını kaldırdım ve