2016-04-13 3 views
2

Я время от времени трачу волосы на Play (снова). Я использую v2.4.6 и пытаюсь использовать пользовательский файл хранилища ключей для доступа HTTPS.Невозможно указать файл хранилища ключей для https

Si Я следовал documentation:

  • Добавлено javaOptions in run += "-Dhttp.port=9020" в моем build.sbt файле
  • Добавлено play.server.https.keyStore.path = "conf/mykeystorefile.jks и play.server.https.keyStore.password = "my_keystore_file_passphrase

Итак я использую активатор UI для запуска игры, как обычно, и HTTPS-запросы работают, НО воспроизведение всегда генерирует generated.keystore и использует его вместо того, чтобы использовать тот, который мне нужен. И выводит предупреждение: «Использование сгенерированного ключа с самоподписанным сертификатом для HTTPS. Это не должно использоваться в производстве».

Если я смотрю на исходный код игры, this - это место, откуда приходит журнал. Но при чтении кода это должно произойти только в том случае, если play.server.https.keyStore.path не предоставляется, а это ...

Что происходит?

ответ

1

С вашего вопроса, я думаю, вы используете Play в режиме dev. Если это так, я думаю, что в режиме dev Play не удается прочитать эти значения перед запуском приложения (та же проблема, которая заставляет вас использовать javaOptions для указания порта).

Вы можете попробовать установить эти значения, используя свойства системы (-Dplay.server.https.(...)) или указать эти параметры в build.sbt:

devSettings := Map(
    "play.server.http.port" -> "9020", 
    "play.server.https.keyStore.path" -> "/path/to/file", 
    // (...) 
) 

Примечание: не знаю, если это была опечатка в вашей конфигурации, но я думаю, что вы необходимо указать https.port также ...

+1

Да я имел в виду 'https.port' это была опечатка. 'devSettings' не работает, но добавление' javaOptions в run + = "-Dplay.server.https.keyStore.path = путь/to/keystore" и 'javaOptions in run + =" -Dplay.server.https .keyStore.password = password "' к моему build.sbt сделал трюк. спасибо! – SebT

1

для тех, кто действительно только хочет это в режиме разработчика ...

«Вы можете настроить дополнительные параметры для команды запуска в вашем build.sbt. Эти параметры не будутпри развертывании приложения ».

~ https://www.playframework.com/documentation/2.5.x/ConfigFile#Extra-devSettings

Ex:

PlayKeys.devSettings := Seq(
    "https.port" -> "9443", 
    "play.server.https.keyStore.path" -> "conf/keystore.jks" 
)