使用情景
- 配置好Spring Cloud Config后 所有配置文件存儲在git上(包括密碼)
- 通過查看git就能看到所有密碼
- 并不安全
升級JCE環(huán)境
- 下載:JAVA8 JCE 地址: java8 JCE下載地址
- 上述鏈接下載解壓后拷貝到 JDK/jre/lib/security 目錄下覆蓋文件 (whichever version of JRE/JDK x64/x86 you are using).
- 會出現(xiàn)invalid key size錯誤(還未下載JCE之前生成的key位數(shù)不符合Spring Cloud Config 長度限制(太短))
KeyStore配置
- 使用keytool生成 KeyStore
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 letmeinv ```
2. 配置application.properties
1. 添加如下屬性
encrypt.keyStore.location: classpath:/server.jks
encrypt.keyStore.password: letmein
encrypt.keyStore.alias: mytestkey
encrypt.keyStore.secret: change
3. 開啟Spring Cloud Server 加密密碼
1. 訪問鏈接獲取加密后的密碼(encrypt-password)
`
curl -u [{username}:{password}] {config:host}:{port}/encrypt -d {your-password}
`
2. 如果JCE沒有成功安裝 運行上述命令 spring cloud server會報invalid key size的錯誤(還未下載JCE之前生成的key位數(shù)不符合Spring Cloud Config 長度限制(太短))
3. 獲取加密后的密碼荚虚,在項目的application.properties中修改密碼
4. 將加密后的密碼復(fù)制并在前面添加{cipher}字段,spring cloud server 就知道這是加密的字段
`
datasource.password = {cipher}encrypt-password
`