Spring Cloud Config 加密

使用情景

  • 配置好Spring Cloud Config后 所有配置文件存储在git上(包括密码)
  • 通过查看git就能看到所有密码
  • 并不安全

升级JCE环境

  1. 下载:JAVA8 JCE 地址: java8 JCE下载地址
  2. 上述链接下载解压后拷贝到 JDK/jre/lib/security 目录下覆盖文件 (whichever version of JRE/JDK x64/x86 you are using).
  3. 会出现invalid key size错误(还未下载JCE之前生成的key位数不符合Spring Cloud Config 长度限制(太短))

KeyStore配置

  1. 使用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
`

你可能感兴趣的:(Spring Cloud Config 加密)