配置信息的加密
在配置中心中,有些信息是比较敏感的,比如密码信息,在配置密码信息的时候有必要对密 码信息加密以免密码信息泄露,springcloud 配置中心也支持配置信息加密的,这里一 RSA 非对称加密举例:
1、本地生成秘钥对 cd 到 jdk 的 keytool 目录:D:\Program
Files\Java\jdk1.8.0_92\jre\bin 里面有一个 keytool.exe 可执行文件
2、执行指令生成秘钥文件
keytool -genkeypair -alias config-server -keyalg RSA -keystore config-server.keystore -validity 365
指令执行成功后会在 bin 目录生成一个 config-server.keystore 文件,把该文件 copy 到配置中 心服务工程中 resources
3、服务端工程配置 Properties 配置文件 添加秘钥配置
encrypt.key-store.location=config-server.keystore encrypt.key-store.alias=config-server encrypt.key-store.password=123456 encrypt.key-store.secret=123456
pom 中添加静态文件扫描,让能够扫描到.keystore 文件
<resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.txt</include> <include>**/*.keystore</include> </includes> <filtering>false</filtering> </resource> </resources>
4、密码加密和解密接口 在服务端中有提供对信息加密和解密接口的 加密接口:
http://localhost:8085/encrypt?data=123456,post 请求:
注意: http://localhost:8085是config-server的服务。
5、代码仓库密文配置
密文前面一定要加上{cipher}标识这个是密文配置,需要服务端来解密的。
完