使用情景
- 配置好Spring Cloud Config后 所有配置文件存储在git上(包括密码)
- 通过查看git就能看到所有密码
- 并不安全
升级JCE环境
- 下载:JAVA8 JCE 地址: java8 JCE下载地址
- 上述链接下载解压后拷贝到 JDK/jre/lib/security 目录下覆盖文件 (whichever version of JRE/JDK x64/x86 you are using).
- 会出现invalid key size错误(还未下载JCE之前生成的key位数不符合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位数不符合Spring Cloud Config 长度限制(太短))
3. 获取加密后的密码,在项目的application.properties中修改密码
4. 将加密后的密码复制并在前面添加{cipher}字段,spring cloud server 就知道这是加密的字段
`
datasource.password = {cipher}encrypt-password
`