Вы можете защитить его, добавив свойства шифрования и дешифрования
Вам необходимо предоставить jks для безопасного шифрования и дешифрования
Сервер конфигурации Spring Cloud поддерживает симметричные и асимметричные ключи
Чтобы настроить симметричный ключ, вам нужно установить encrypt.key
для секретной строки (или использовать переменную окружения ENCRYPT_KEY
, чтобы не допустить его в текстовых файлах конфигурации).
Для асимметричного вам нужноукажите в bootsrap.yml такие свойства:
server:
port: 8888
spring:
cloud:
config:
server:
git:
uri: your git url or your local repository on file system
username: username for git or bitbucket if needed
password: password
clone-on-start: true this property will clone all repo localy on starttup
force-pull: true
application:
name: config-server
encrypt:
key-store:
location: jks location
password: letmein
alias: mytestkey
secret: changeme
Для генерации JKS вам необходимо выполнить эту команду
keytool -genkeypair -alias mytestkey -keyalg RSA \
-dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \
-keypass changeme -keystore server.jks -storepass letmein
На самом деле Java по умолчанию имеет ограничение на определенные параметры длины ключа.Его 128 бит по умолчанию.
Чтобы использовать ключ с большей длиной ключа, вам просто нужно заменить существующие local_policy.jar
и US_export_policy.jar
в <java-home>/lib/security
Вот ссылка для скачивания:
https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
А также вы можете зашифровать и дешифровать ваши свойства с помощью таких конечных точек:
curl config_server_host:port/encrypt-d your data to be encrypted
curl config_server_host:port/decrypt -d your data to be decrypted // this will automatically use this endpoint to decrypt values
//Both are http post requests
Чтобы использовать шифрование с помощью сервера конфигурации, вам необходимо предоставить такой префикс в вашей конфигурации для вашегоприложение, которое будет получать конфиги с сервера конфигурации:
'{cipher}your_encrypted_data'