2012-03-29 10 views
6

私たちが作っているアンドロイドデバイスソフトウェアによってログインが実行されるplay framework 2.0を使用しているWebサーバーで作業しています。そして、主な関心事は、プレイ2.0でHTTPSのサポートを見つけることができないということです。それは、私たちがHTTPSを解決するための雲や他の代理人を私たちに教えてくれる学校プロジェクトではないと思います。play-framework [2.0] HTTPS

私たちの主な問題は、リクエストの本文で明白に見えるパスワードと電子メールです。モバイルデバイスとサーバーでの暗号化と復号化は、パフォーマンスと感覚で高価に見えます。 HTTPSを使用してユーザーのログインデータやその他の提案を保護する方法はありますか?

もしそうでなければ、すべてのアプリケーションを別のフレームワークに移行しなければならないかもしれません。

答えて

4

歴史的に、私はほとんどの人が何らかのリバースプロキシの背後にあるJava/Scalaアプリケーションサーバーを実行しているのを見ました。 ApacheでHTTPSを設定することはあまり難しくありません.ModProxyを使用してリクエストを内部的にPlayアプリケーションに送信するだけです。

リバースプロキシシステムのいずれかがこれを行う可能性があります.nginxも一般的ですが、一般的にはApacheよりも設定が簡単ですが、HTTPSでは使用したことがありません。

通常これを行う理由の1つはセキュリティです。ポート80で権限のないユーザとしてJavaプログラムを起動することはできません。ポート80で実行されているrootとしてJavaプログラムを起動すると、アプリケーションの任意の穴にroot権限が与えられます。その結果、別のポートでJavaアプリケーションを起動し、ポート80で権限のないユーザーとして実行できるWebサーバーからリバースプロキシを開始します。

(*)これはやや簡略化されていますが、この奇妙なことの範囲は私が考える範囲を超えています。

+0

あなたはjsvcの** authbindとポート80上の非特権ユーザーを起動し、および/または**することができます**れますrootとして起動し、ポートをバインドしてから、Javaプログラムを初期化する前にユーザーをダウングレードしてください。 –

+0

iptablesを使用して、ポート80から上位のポート(Googleでは「iptables forward port 80 to 8080」)をリッスンしているルート以外のアプリケーションにトラフィックを転送できます。 – KajMagnus

2

Playとhttpsを直接使用できるようになりました。これはプレイ2.1

で追加されただけでサーバーを起動します。

JAVA_OPTS=-Dhttps.port=9001 play start 
関連する問題