ドキュメント

§HTTPSの設定

PlayはHTTPSを提供するように設定できます。有効にするには、`https.port`システムプロパティを使用して、Playがリッスンするポートを指定します。例えば

./bin/your-app -Dhttps.port=9443

§設定の提供

HTTPSの設定は、システムプロパティを使用するか、`application.conf`で指定できます。詳細は、設定および本番環境設定のページを参照してください。

§SSL証明書

§キーストアからのSSL証明書

デフォルトでは、Playは自己署名証明書を生成しますが、通常、これはWebサイトの提供には適していません。Playは、SSL証明書とキーを設定するためにJavaキーストアを使用します。

認証局は、多くの場合、Javaキーストアを作成する方法の手順を提供しています(通常、Tomcatの設定を参照)。JDKのkeytoolユーティリティを使用してキーストアを生成する方法に関する公式のOracleドキュメントはこちらにあります。X.509証明書の生成セクションにも例があります。

キーストアを作成したら、次の設定プロパティを使用して、Playがそれを使用するように設定できます。

§カスタムSSLエンジンからのSSL証明書

SSL証明書を設定する別の方法は、カスタムのSSLEngineを提供することです。これは、クライアント認証の場合など、カスタマイズされた`SSLEngine`が必要な場合にも役立ちます。Javaでは、`play.server.SSLEngineProvider`の実装を提供する必要があります。Scalaでは、`play.server.api.SSLEngineProvider`の実装を提供する必要があります。例えば

Scala
import javax.inject.Inject
import javax.net.ssl._

import play.core.ApplicationProvider
import play.server.api._

class CustomSSLEngineProvider @Inject() (appProvider: ApplicationProvider) extends SSLEngineProvider {
  override def createSSLEngine(): SSLEngine = {
    // change it to your custom implementation
    sslContext().createSSLEngine
  }

  override def sslContext(): SSLContext = {
    // change it to your custom implementation
    SSLContext.getDefault
  }
}
Java
import java.security.NoSuchAlgorithmException;
import javax.inject.Inject;
import javax.net.ssl.*;
import play.server.ApplicationProvider;
import play.server.SSLEngineProvider;

public class CustomSSLEngineProvider implements SSLEngineProvider {

  private final ApplicationProvider applicationProvider;

  @Inject
  public CustomSSLEngineProvider(ApplicationProvider applicationProvider) {
    this.applicationProvider = applicationProvider;
  }

  @Override
  public SSLEngine createSSLEngine() {
    return sslContext().createSSLEngine();
  }

  @Override
  public SSLContext sslContext() {
    try {
      // Change it to your custom implementation, possibly using ApplicationProvider.
      return SSLContext.getDefault();
    } catch (NoSuchAlgorithmException e) {
      throw new RuntimeException(e);
    }
  }
}

`play.server.SSLEngineProvider`または`play.server.api.SSLEngineProvider`の実装を作成したら、次のシステムプロパティでPlayがそれを使用するように設定します。

./bin/your-app -Dhttps.port=9443 -Dplay.server.https.engineProvider=mypackage.CustomSSLEngineProvider

§HTTPの無効化

HTTPポートでのバインディングを無効にするには、`http.port`システムプロパティを`disabled`に設定します。例:

./bin/your-app -Dhttp.port=disabled -Dhttps.port=9443 -Dplay.server.https.keyStore.path=/path/to/keystore -Dplay.server.https.keyStore.password=changeme

§本番環境でのHTTPSの利用

PlayをTLS終端レイヤーとして使用する場合、次の設定に注意してください。

次: クラウドサービスへのデプロイ


このドキュメントに誤りを見つけましたか?このページのソースコードはこちらにあります。ドキュメントガイドラインを読んだ後、プルリクエストを送信してください。質問やアドバイスがあれば、コミュニティフォーラムにアクセスして、コミュニティとの会話を始めてください。