Весенняя загрузка SSL / HTTPS с использованием встроенной настройки Tomcat, лучшие рекомендации по настройке пароля - PullRequest
0 голосов
/ 24 февраля 2020

В настоящее время мы используем встроенный сервер Tomcat для запуска нашего загрузочного веб-приложения Spring. Чтобы включить HTTTPS, мы устанавливаем конфигурацию, связанную с сертификатом, в файле свойств. Используя pom. xml, мы упаковываем его:

  mvn clean install -P PT  # DEV, PT, UAT, Staging, DR, PROD

Мы упаковываем код в файл WAR и запускаем приложение из командной строки, используя:

  java -jar our-spring-boot-wep.war

Я прочитал В нескольких онлайн-статьях о том, как настроить / включить HTTPS, все они используют такой же подход к настройке, как показано ниже, как внутри, так и снаружи.

 # Tomcat connector configuration
 server.tomcat.port=8080
 server.tomcat.ssl.enabled=true
 server.tomcat.ssl.key-alias=cd-something.net
 server.tomcat.ssl.key-store=certificates/cd-something.net.jks
 server.tomcat.ssl.key-password=secret
 server.tomcat.ssl.key-store-type=JKS
 server.tomcat.ssl.trust-store=certificates/trustStore.jks
 server.tomcat.ssl.trust-store-password=secret

Есть ли способ скрыть / зашифровать такую ​​информацию, как пароль? Существует несколько различных сред: DEV, PT, UAT, PROD. Каждый env имеет свой собственный файл сертификата / JKS. Как лучше всего его настроить? Спасибо!

1 Ответ

1 голос
/ 24 февраля 2020

Ваши свойства конфигурации должны быть уникальными по окружению и размещать общие свойства внутри войны.

Пример:

/ resources / application.properties

 server.tomcat.port=8080
 server.tomcat.ssl.enabled=true
 server.tomcat.ssl.key-alias=cd-something.net
 server.tomcat.ssl.key-store-type=JKS

/home/app/config/application.properties

 server.tomcat.ssl.key-store=certificates/cd-something.net.jks
 server.tomcat.ssl.key-password=secret
 server.tomcat.ssl.trust-store=certificates/trustStore.jks
 server.tomcat.ssl.trust-store-password=secret

, таким образом, при обработке кода только общие свойства будут видны, а указанные пароли c будут доступны только для чтения, если у вас есть доступ к сервер, на котором запущено приложение.

Я думаю, что этот родной способ должен работать, и есть несколько ключевых менеджеров, таких как AWS Управление ключами, которые вы можете изучить.

...