如何使用 gradle bootRun 通过 https 在本地 运行 一个 Grails 3 应用程序

How to run a Grails 3 app locally with https using gradle bootRun

我们有一个复杂的多模块项目,由于各种原因必须 运行 和 'gradle bootRun' 而不是 'grails run-app'。使用 'grails run-app' 可以很容易地通过使用 'grails run-app -https' 在本地 https 环境中 运行,但这对 gradle bootRun 不起作用,我找不到明显的等价物。有什么东西可以添加到我的构建文件中,或者作为参数传递,以模仿 grails 运行-app 的 -https 行为,当 运行 在开发人员机器上本地运行时?

编辑:我正在使用默认的嵌入式 servlet 容器 (Tomcat)

我能够通过以下步骤解决此问题:

  1. 按照 https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html#Configuration 中的说明创建本地密钥库 - 特别是此命令(提示输入密码时使用 'mysecret',这显然是您的选择)

    $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore ./localkeystore

  2. 将生成的 localkeystore 文件与 build.gradle

  3. 一起复制到我的项目的根目录中
  4. 将以下块添加到 build.gradle:

-

bootRun {
    systemProperty 'server.port', '8443'
    systemProperty 'server.ssl.enabled', 'true'
    systemProperty 'server.ssl.key-store', './localkeystore'
    systemProperty 'server.ssl.key-store-password', 'mysecret'
    systemProperty 'server.ssl.key-password', 'mysecret'   
}