从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理。
下面使用对称性加密来加密配置,需要配置一个密钥,当然也可以使用rsa非对称性加密,但对称加密比较方便也够用了,这里就以对称加密来配置即可。
1、安装jce
jdk下的jcr默认是有长度限制的,需要替换没有长度限制的jce版本。
http://www.oracle.com/technet...
把下载包里面的两个jar文件复制替换到java_home/jre/lib/security目录下。
2、添加加密key
配置中心配置文件中加入加密密钥。
1
2
|
encrypt: key: 0e010e17- 2529 - 4581 -b907-c8edcfd6be09 |
3、查看加密功能状态
http://192.168.1.237:7100/encrypt/status
功能正常会显示ok
{"status":"ok"}
4、加密解密
对develop字符串加密
1
|
curl http: //192.168.1.237:7100/encrypt -d develop -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6 |
对develop字符串解密
1
2
|
curl http: //192.168.1.237:7100/decrypt -d 0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836 -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6 -u username:password 为basic认证 |
5、配置文件
1
2
3
|
spring: datasource: username: '{cipher}0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836' |
需要加密的内容以{cipher}
开头,并注意要使节单引号包起来,不然报错。
6、读取配置
这样客户端读取出来的配置是自动解密了的,如果要关闭自动解密功能通过客户端自己来解密,同时也要保留加解密的端点可以通过关闭以下配置即可。
1
|
spring.cloud.config.server.encrypt.enabled= false |
总结
以上所述是小编给大家介绍的spring cloud 配置中心内容加密的配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://segmentfault.com/a/1190000015349628