【问题标题】:Play Framework - Reload keystore filePlay Framework - 重新加载密钥库文件
【发布时间】:2019-10-02 07:31:08
【问题描述】:

我有一个配置了 SSL 的 Play 服务器。 application.conf 的 SSL 部分是:

play.server.https {
  port = 443
  keyStore {
    path = "/pathToKeystore"
    type = "JKS"
    password = "passwordHere"
  }
}

因为我使用的是 Let's Encrypt,所以我的密钥库包含一个在 3 个月后到期的密钥。在此之前,我需要创建一个新的密钥库(延长过期时间)并覆盖之前的密钥库。但是,服务器似乎只有在重新启动后才能读取新文件。这可能会导致最终用户停机。

有没有办法配置服务器在不重启的情况下重新加载密钥库文件?

【问题讨论】:

    标签: playframework playframework-2.0


    【解决方案1】:

    如何在启动服务器之前读取文件。为此,您需要将其添加为环境变量并在启动期间将其传递给播放服务器

    play.server.https {
      port = 443
      keyStore {
        path = ${PATH_TO_KEYSTORE}
        type = "JKS"
        password = ${PASSWORD_HERE}
      }
    }
    

    然后把它传给玩:

    sbt run -DPATH_TO_KEYSTORE=actual_path -DPASSWORD_HERE=actual password
    

    我不确定它的行为是否像 observable,因此您可能需要编写每三个月运行一次的脚本。

    【讨论】:

    • 如果不是用“sbt build”构建的文件,我该怎么做?例如。对于配置文件,它将是 -Dconfig.file=/path/to/production.conf
    • 你应该能够在没有参数的情况下构建你的项目,并且只有在你运行它时才传递它们
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2012-06-23
    • 1970-01-01
    • 2014-10-13
    • 2014-06-17
    • 2016-01-17
    相关资源
    最近更新 更多