Documentation

You are viewing the documentation for the 2.3.x release series. The latest stable release series is 2.4.x.

§HTTPS’yi Yapılandırmak

Play, HTTPS sunmak üzere yapılandırılabilir. Bunu etkinleştirmek için, https.port sistem değişkenini kullanarak Play’e hangi portu dinlemesi gerektiğini söylemeniz yeterlidir. Örneğin:

./start -Dhttps.port=9443

§SSL Sertifikaları

§Bir anahtar deposundan SSL sertifikaları

Varsayılan olarak, Play kendi kendine imzaladığı bir sertifika üretecektir. Ancak genellikle bu bir web sitesini yayınlamak için uygun değildir. Play, SSL sertifikaları ve anahtarlarını yapılandırmka için Java anahtar depolarını kullanır.

İmza otoriteleri çoğu zaman nasıl bir Java anahtar deposu (bir Tomcat yapılandırmasına referansla) oluşturulacağını anlatan yönergeler sağlarlar. JDK anahtar aracını kullanarak anahtar depoları üretme üzerine resmi Oracle dokümantasyonu burada bulunabilir. Aynı zamanda Generating X.509 Certificates bölümünde de bir örnek vardır.

Anahtar deponuzu yarattıysanız, aşağıdaki sistem değişkenleri Play’i deponuzu kullanması için yapılandırmakta kullanılabilir:

§Özel bir SSL motorundan SSL sertifikaları

SSL sertifikalarını yapılandırmanın bir alternatifi de özel bir SSLEngine sağlamaktır. Bu aynı zamanda, özel istemci kimlik doğrulaması gibi özelleştirimiş bir SSLEngine’in gerektiği durumlarda işe yarar.

§Java’da, play.server.SSLEngineProvider için bir uygulama sağlanmak zorundadır

import play.server.ApplicationProvider;
import play.server.SSLEngineProvider;

import javax.net.ssl.*;
import java.security.NoSuchAlgorithmException;

public class CustomSSLEngineProvider implements SSLEngineProvider {
	private ApplicationProvider applicationProvider;

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

    @Override
    public SSLEngine createSSLEngine() {
        try {
            // change it to your custom implementation
            return SSLContext.getDefault().createSSLEngine();
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
    }
}

§Scala’da, play.server.api.SSLEngineProvider için bir uygulama sağlanmak zorundadır

import javax.net.ssl._
import play.core.ApplicationProvider
import play.server.api._

class CustomSSLEngineProvider(appProvider: ApplicationProvider) extends SSLEngineProvider {

  override def createSSLEngine(): SSLEngine = {
    // change it to your custom implementation
    SSLContext.getDefault.createSSLEngine
  }

}

play.server.SSLEngineProvider veya play.server.api.SSLEngineProvider uygulamasını hazırladıysanız, aşağıdaki sistem değişkenleri Play’i onu kullanacak şekilde yapılandırmayı sağlar:

Örnek:

./start -Dhttps.port=9443 -Dplay.http.sslengineprovider=mypackage.CustomSSLEngineProvider

§HTTP’yi kapatmak

HTTP portunundaki bağlantıyı devre dışı bırakmak için, http.port sistem değişkenini disabled yapın. Örneğin:

./start -Dhttp.port=disabled -Dhttps.port=9443 -Dhttps.keyStore=/path/to/keystore -Dhttps.keyStorePassword=changeme

§HTTPS’nin üretim ortamında kullanımı

Play HTTPS’yi üretim ortamında kullanıyorsa, JDK 1.8 ile çalışmalıdır. JDK 1.8 JSSE’yi bir TLS termination layer olarak uygulanabilir kılan yeni özellikler sağlar. Eğer JDK 1.8 kullanılmıyorsa, Play’in önünde bir ters vekil kullanmak daha iyi bir kontrol ve HTTPS güvenliği sağlayacaktır.

Eğer Play’i TLS termination layer için kullanmak isterseniz, lütfen aşağıdaki ayarlara dikkat edin:

Sonraki: Bir bulut hizmetine dağıtım yapmak


Dokümantasyonun bu çevirisi Play ekibi tarafından yapılmamaktadır. Eğer bir hata bulduysanız, bu sayfanın kaynak kodu burada bulunmaktadır. Dokümantasyon yönergelerini okuduktan sonra lütfen katkı yapmaktan çekinmeyin.