Вопрос по playframework-2.0, playframework – Как настроить PlayFramework2 для поддержки SSL?

18

Я прочитал Как настроить сервер playframework для поддержки ssl и я тоже пытался следоватьhttp://www.playframework.org/documentation/1.1.1/releasenotes-1.1#https но это не работает для меня

большое спасибо ~

Я прочитал документацию для Play1, потому что больше не могу найти обновленной информации для Play2 о https.

В application.conf я добавил следующие строки:

https.port=9443
certificate.key.file=conf/host.key
certificate.file=conf/host.cert

Я печатаюrun в игровой консоли и попробуйте получить доступ к серверу вhttps://localhost:9443 время ожидания браузера истекло, и в консоли ничего не зарегистрировано

@ Li-o Я обновил больше информации. У вас есть обновленная документация для Play2 о конфигурации https? Не могли бы вы поделиться этим со мной ~? Большое спасибо ~ Chris
Что не работает? Пожалуйста, предоставьте больше информации, такой как трассировки стека и ваши файлы конфигурации. Также вы прочитали документацию для Play 1 и пытаетесь настроить SSL для Play 2, так что вы читаете неверную документацию Leonard Punt

Ваш Ответ

6   ответов
5
24

Он не будет работать с подходом, который вы используете. Вы ошибаетесь примечаниями к выпуску ветки 1.x с веткой 2.x.

in 1.x branch, это возможно. Примечаний к выпуску достаточно, и они сработали для меня.

For 2.1+ branchпожалуйста, обратитесь к комментарию @ Christina. Поддержка была добавлена в 2.1, и обсуждение обсуждает подробности.

Цитируя ответ Джеймса Ропера

In dev mode, it's very easy, just:

JAVA_OPTS=-Dhttps.port=9443 play run

Play will generate a private key and self signed certificate, which obviously your browser will balk at with a big red warning. It will reuse that generated self signed certificate for each subsequent run of Play, so you should only get the browser error once. Obviously this self signed certificate is probably not what you want in production. Also important to note is that the self signed certificate generation will only work on JVMs that use the sun security libraries (eg Oracle and OpenJDK, but most notably not IBM J9). On JVMs that don't use these, you will get a NoClassDefFoundError when it tries to generate the certificate.

In prod (and this config also applies to dev) you configure it much the same way that you configure SSL ordinarily in Java, via system properties. Here's a summary:

https.port - The port that should be used

https.keyStore - The path to the keystore containing the private key and certificate, if not provided generates a keystore for you

https.keyStoreType - The key store type, defaults to "JKS"

https.keyStorePassword - The password, defaults to ""

https.keyStoreAlgorithm - The key store algorithm, defaults to the platforms default algorithm

https.trustStore - This feature hasn't been fully implemented, currently it will always use the JDKs trust store for verifying client side certificates (which you can of course configure yourself) whether you supply a value for this or not, unless you specify "noCA", in which case, it will use a trust store that trusts all certificates with no validation or verification, which is useful for if using webid client side certificate verification.

For 2.0 branchВы должны поставить другой сервер напротив play, то есть apache / nginx / other, который прослушивает https и перенаправляет запрос на воспроизведение в http.

Инструкции по настройке внешнего сервера доступны по адресуhttp://www.playframework.org/documentation/2.0.1/HTTPServer

Так что запустите свой игровой сервер на порт. Иметь apache переслать запрос от domain.com на 127.0.0.1:9443.

Sample apache config

    <VirtualHost *:443>

  ServerAdmin [email protected]
  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>

Надеюсь, поможет.

Error: User Rate Limit Exceededthis Google Groups topic.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
0

Я использую securesocial 3.0.3M. Задавать

securesocial.ssl = true 

в securesocial.conf, и вы должны хорошо идти. Затем перезапустите ваш sbt или активатор с

JAVA_OPTS=-Dhttps.port=9443 activator run

Перейти к localhost: 9443

наслаждаться

3

Это полезно для локального тестирования https:

activator "run -Dhttps.port=9005"

Затем укажите ваш браузер наhttps://localhost:9005.

0

Сначала мы использовали 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/

4

Сейчас вам нужен обратный прокси-сервер, управляющий SSL для вас. Я нашелбилет инить обсуждая это.

Error: User Rate Limit Exceeded Chris

Похожие вопросы