2

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

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

4

1 回答 1

6

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

  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. 将以下块添加到 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'   
}
于 2016-09-06T23:47:17.760 回答