配置信息的加密
在配置中心中,有些信息是比较敏感的,比如密码信息,在配置密码信息的时候有必要对密 码信息加密以免密码信息泄露,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}标识这个是密文配置,需要服务端来解密的。
完