3.3 保护敏感信息
3.3.1 下载和安装加密需要的oracle jce 包
- 找到$JAVA_HOME/jre/lib/security目录,将local_policy.jar和US_export_policy.jar 备份。
- 下载jce,因为我是jdk8所以下载地址为:https://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
- 将新下载的jce包中local_policy.jar和US_export_policy.jar拷贝到$JAVA_HOME/jre/lib/security目录。
3.3.2 生成秘钥
使用jdk自带的keytool工具生成秘钥:
keytool -genkeypair -alias myusecurity -keyalg RSA -keypass password -sigalg SHA256withRSA -dname "cn=gx,ou=si,o=unicom.si,l=Beijing,st=Beijing,c=CN" -validity 3650 -keystore myuKeyStore.jks -storetype JKS -storepass password
3.3.3 配置spring cloud config server 使用加密
1.将生成的秘钥粘贴到src/main/resources下
2.新加配置文件bootstrap.yml(属性值要和cmd秘钥中配置的一样)
encrypt:
key-store:
location: classpath:/myuKeyStore.jks # server.jks的配置文件的路径
alias: myusecurity #和上步骤中的alias 一样
password: password # 设置store的密码
secret: password # keypass密码
3.在application.properties中添加encrypt.key=key1
4.启动服务,使用post请求生成一个密文
比如想要将“lcchao”转换成密文,执行curl -X POST http://localhost:8887/encrypt -d lcchao
5.将生成的密文配置到git 对应的属性上(注意必须加上 {cipher})
foo = {cipher}AQBh6y70+pRaN8DjxeOVJ2o53LN9aILhTuFKCXhJe2sEX+GRtzT7EouMtayU/tIE0VI6JSuOyD2f2s4xCMkGnd1FLL4OO2KaFVsPa/49IeHpjzaZo/WQHMVIYk4M63dmucYszkDA+A38EqTPyRwaGA+g1WDfGAO9dJ1GysUyyep9bt30nLCY83LGRokXj0yHDUUt0WJGoxb2L/h4xSHM5jDq7VTrgRXKU+On2hMMTUf8M8Y2ciel7pRn+O69AoUxdspyQBfMDo2ObT0DzB6cLvzUk9ZVbzO260SHfWWFIdrTUlOZy3vmk+6TqGiDdNNT6MNMll2B7gNkdZvLAHsYz8Z2BtJ+IzpjT4nkQeRkPbGpIM03vOC1qq073CmEIexnSg0=
注意:
- Spring cloud config服务器要求所有的加密属性都以{cipher}为前缀。{cipher}告诉服务器,它将处理一个加密值
- Decrypt是解密
测试,启动spring cloud config 客户端
源码:https://github.com/liucc0413/SpringCloudConfig/tree/master