2012-01-13 24 views
8

誰かがdev_appserver.pyでHTTPSを動作させる方法を突きつけましたか?私はFacebookのキャンバスアプリのテストのためにそれが必要です。私はドキュメントを検索しましたが、それを行う方法があることは何も示唆していません(app.yamlに「安全」を置くことはローカルではありません)。GAE dev_appserver.py over HTTPS

私はそれをプロキシする方法があると思っていましたが、誰もこれを経験していますか?

答えて

6

dev_appserverはHTTPSをサポートしていません。これを行うための唯一の実際の方法は、アプリの前にリバースプロキシを設定することです(nginxやApacheなど)。アプリにSSLトラフィックをプロキシします。

+0

そしてどうしましたか? –

+2

@AhmedNuamanそれは別の質問になるでしょう - そして、serverfault.comではStack Overflowではありません。 –

1

誰がこの質問を見つけた場合、私は、これは後半知っている:

ngrokは、カスタムのセットアップに簡単に静かですがHTTPSをリバースプロキシ..

唯一の欠点は、私のwebapp2をアプリケーションということですそれでもHTTP経由で配信されていると考えているので、redirect()を使用すると、相対URLが絶対URLに解決されるため、request.urlを使用するとうまくいきません。

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クラスが必要:

私の問題を回避するには、次のようにRequestHandler.redirectを上書きすることでした。

0

私はプロキシに私のAppache httpd.confの接続にこれを置く:今私のブラウザでhttps://localhost/myproject/に行く

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

が働いています。

注:ApacheサーバーでSSLを有効にする必要があります。私のOS Xマシンでは、私は/etc/apache2/httpd.confの行Include /private/etc/apache2/extra/httpd-ssl.confのコメントを外してsudo apachectl restartを実行しました。

関連する問題