Как запустить приложение Grails 3 локально с https, используя gradle bootRun

У нас есть сложный многомодульный проект, который по разным причинам необходимо запускать с помощью «gradle bootRun», а не «grails run-app». С помощью «grails run-app» легко запустить локально в среде https, используя «grails run-app -https», но это не работает для gradle bootRun, и я не смог найти очевидного эквивалента. Есть ли что-то, что я могу добавить в свой файл сборки или передать в качестве параметра, чтобы имитировать поведение -https приложения grails run-app при локальном запуске на компьютере разработчика?

РЕДАКТИРОВАТЬ: я использую встроенный контейнер сервлетов по умолчанию (Tomcat)


person Peter    schedule 06.09.2016    source источник
comment
Ответ будет зависеть от того, какой контейнер вы используете. Tomcat используется по умолчанию.   -  person Jeff Scott Brown    schedule 06.09.2016
comment
@JeffScottBrown да, Томкэт. Отредактировано для ясности   -  person Peter    schedule 06.09.2016


Ответы (1)


Я смог решить эту проблему, выполнив следующие действия:

  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'   
}
person Peter    schedule 06.09.2016