我们有一个复杂的多模块项目,出于各种原因,必须使用'gradle bootRun'而不是'grails run-app'运行。使用'grails run-app',可以使用'grails run-app -https'在本地https环境中轻松运行,但这对gradle bootRun不起作用,我找不到明显的等价物。有什么东西可以添加到我的构建文件中,或作为参数传递,以模仿在开发人员机器上本地运行时grails run-app的-https行为?
编辑:我正在使用默认的嵌入式servlet容器(Tomcat)
答案 0 :(得分:5)
我能够通过以下步骤解决这个问题:
按照https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html#Configuration的说明创建本地密钥库 - 特别是此命令(使用' mysecret'当提示输入密码时,这显然是您的选择)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore ./localkeystore
将生成的localkeystore
文件与build.gradle一起复制到项目的根目录
将以下块添加到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'
}