可以对密码等敏感信息加密安全储存,在项目中自动解密使用
Spring Cloud Config的非对称加密可以使用RSA加密方式,通过JDK自带的keytool生产秘匙对,对敏感信息进行加密解密。
生产秘匙对:
keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Server,OU=China,O=,L=Beijing,S=Beijing,C=China" -keypass changeme -keystore config-service.jks -storepass letmein
将生成的keystore文件拷贝到src/main/resources
目录中,然后在配置文件bootstrap.yml
中配置信息秘匙对信息:
location是存储路径,alias、password、secret是上面那段代码设置的对应的值
encrypt:key-store:location: classpath:/config-service.jksalias: mytestkeypassword: letmeinsecret: changeme
在pom.xml
中加入了如下配置:
<build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><excludes><exclude>**/*.jks</exclude></excludes></resource><resource><directory>src/main/resources</directory><filtering>false</filtering><includes><include>**/*.jks</include></includes></resource></resources></build>
然后启动应用,通过访问http://localhost:8888/encrypt/status ,返回{"status":"OK"}
,说明配置正确。这个使用就可以通过访问/encrypt
和decrypt
两个endpoints对指定信息进行加密解密了。
通过postman进行加密和解密