sslをサポートするようにplayframeworkサーバーを構成する方法 を読み、フォローしようとしました http://www.playframework.org/documentation/1.1.1/releasenotes-1.1#https しかし、それは私には機能しません
どうもありがとう〜
Httpsに関するPlay2の更新情報が見つからないため、Play1のドキュメントを読みました。
application.confに、次の行を追加しました。
https.port=9443
certificate.key.file=conf/Host.key
certificate.file=conf/Host.cert
再生コンソールにrun
と入力し、コンソール出力に何もログインせずにブラウザがタイムアウトしたhttps://localhost:9443
でサーバーにアクセスしようとしました。
それはあなたが取っているアプローチでは機能しません。 1.xブランチのリリースノートを2.xブランチと間違えています。
1.xブランチでは可能です。リリースノートで十分で、私にとってはうまくいきました。
2.1以降のブランチについては、@ Christinaのコメントを参照してください。 2.1でサポートが追加され、ディスカッションスレッドで詳細が提供されます。
ジェームズ・ローパーの反応を引用する
開発モードでは、非常に簡単です。
Java_OPTS = -Dhttps.port = 9443 play run
Playは秘密鍵と自己署名証明書を生成します。これは明らかに、ブラウザが大きな赤い警告を表示します。生成された自己署名証明書は、その後のPlayの実行ごとに再利用されるため、ブラウザエラーは1回だけ発生します。明らかに、この自己署名証明書は、おそらく本番環境で必要なものではありません。また、自己署名証明書の生成は、Sunセキュリティライブラリ(OracleやOpenJDKなど、特にIBM J9ではない)を使用するJVMでのみ機能することに注意してください。これらを使用しないJVMでは、証明書を生成しようとするとNoClassDefFoundErrorが発生します。
Prod(およびこの構成はdevにも適用されます)では、システムプロパティを使用して、通常JavaでSSLを構成するのとほぼ同じ方法で構成します。要約は次のとおりです。
https.port-使用する必要のあるポート
https.keyStore-秘密鍵と証明書を含むキーストアへのパスが提供されていない場合は、キーストアが生成されます
https.keyStoreType-キーストアタイプ。デフォルトは「JKS」です。
https.keyStorePassword-パスワード。デフォルトは「」
https.keyStoreAlgorithm-キーストアアルゴリズム、デフォルトはプラットフォームのデフォルトアルゴリズム
https.trustStore-この機能は完全には実装されていません。現在、クライアント側の証明書を検証するために常にJDKのトラストストアを使用します(もちろん、自分で構成します)これに値を指定するかどうかにかかわらず、「noCA」を指定しない限り、「noCA」を指定しない限り、検証または検証なしですべての証明書を信頼するトラストストアが使用されます。これは、webidクライアント側を使用する場合に役立ちます。証明書の検証。
2.0ブランチの場合、別のサーバーをプレイの前に配置する必要があります。つまり、httpsをリッスンしてhttpでプレイするリクエストを転送するApache/nginx/otherのいずれかです。 。
フロントエンドサーバーのセットアップ手順は、 http://www.playframework.org/documentation/2.0.1/HTTPServer で入手できます。
したがって、プレイサーバーをポートで実行します。 domain.comから127.0.0.1:9443にApache転送リクエストを送信します。
サンプルApache構成
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias *.example.com
ErrorLog ${Apache_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${Apache_LOG_DIR}/ssl_access.log combined
ProxyPreserveHost On
# ProxyPass /excluded !
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
# SSL Engine Switch:
# Enable/Disable SSL for this virtual Host.
SSLEngine on
# A self-signed (snakeoil) certificate can be created by installing
# the ssl-cert package. See
# /usr/share/doc/Apache2.2-common/README.Debian.gz for more info.
# If both key and certificate are stored in the same file, only the
# SSLCertificateFile directive is needed.
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# Certificate Authority (CA):
# Set the CA certificate verification path where to find CA
# certificates for client authentication or alternatively one
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
それが役に立てば幸い。
Play(2.2.x)の現在のバージョンをセットアップするためのドキュメントはここにあります: http://www.playframework.com/documentation/2.2.x/ConfigureHttps
これは、httpsをローカルでテストする場合に役立ちます。
activator "run -Dhttps.port=9005"
次に、ブラウザでhttps://localhost:9005
を指定します。
AWS ELBを使用してSSLを処理し、再生フィルターを使用してSSL転送(HTTP-> HTTPS)を設定しました。主な利点は、サーバーからSSLの負荷を取り除き、プレイの前にApacheまたはNginxを実行する必要がないことです(一部のソリューションが指摘しているように)。
あなたはここで私の答えを見ることができます: https://stackoverflow.com/a/23646948/690164
また、ブログにもう少し詳しく書いています: http://www.mentful.com/2014/05/25/play-framework-filter-for-aws-elastic-load-balancer-forward- http-to-https /
私はsecuresocial3.0.3Mを使用しています。セットする
securesocial.ssl = true
securesocial.confで、あなたは行ってもいいはずです。次に、sbtまたはアクティベーターをで再起動します
Java_OPTS=-Dhttps.port=9443 activator run
Localhost:9443に移動します
楽しい