springcloud(四):应用配置中心config的安全设置

springcloud应用配置中心config的安全设置

在springcloud应用开发中,为了方便在线管理咱们的配置文件,一般会配一个配置中心config-server,这里托管着应用的一些配置文件,这些配置文件中配置着咱们不少的帐号信息:如mysql、redis、mongodb、rabbitmq等等的帐号和密码。牵扯到帐号信息,想必咱们要保证如何保证其安全性。html

1.保证容器文件访问的安全性,即保证全部的网络资源请求都须要登陆java

经过springboot配置属性之security,配置security.user.name和security.user.password能够初步达到安全访问的效果。具体配置:在application.yml中配置以下:mysql

 
springboot配置属性之security
加上下面的比较好:
security:
  basic:
    enabled: true

在pom依赖中增长redis

 
security依赖

重启config-server后,再经过url访问文件资源时,会出现spring

 
security安全登陆页面
***:若是是直接调用url,那么须要在url里面加上参数,加在Headers里面,Authorization:Basic *************=
*********是通过base64对用户名密码加密以后获得的,获取它能够在上面的安全登陆页面登入以后,F12打开,查找request headers里面。或者用postman测试工具输入用户名密码,去Headers查看。

2.将配置中内心全部配置文件中的密码进行加密,保证其密文性sql

springcloud的配置服务中心具备decrypt/encrypt功能,能够将原文加密成密文,也能够将密文解密成原文。其工做原理是,首先将密码等原文经过开发者设置的key和springcloud中的encrypt加密成密文,用密文替代配置文件中心的原文密码;项目启动加载配置中心时,会自动将密文解密成原文并加载到spring的上下文中(spring上下文中缓存的是原文而不是密文)。具体操做步骤以下mongodb

a.首先去http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html将文件下载并解压,能够看到local_policy.jar和US_export_policy.jar以及readme.txt,若是安装了jre,将两个jar文件放到%JRE_HOME%\lib\security文件目录下,若是安装了jdk,也将两个jar文件放到%JDK_HOME%\jre\lib\security文件目录下。(jdk8环境)缓存

b.设置加密密钥,在config-server的微服务中的application.yml文件中配置security.key=your key安全

 

 
配置密钥

c.重启配置中心服务,会发现springboot

 
security策略加密/解密方法发现

d.将密码原文加密

 

 
经过postman工具加密

e.将加密后的密文复制,加上{cipher}标识,编辑在配置文件中(标识符和密文中间不能有任何字符,包括空格)

 

 
编辑配置文件

搞定后,咱们的配置文件里全部的密码都是密文,即便将配置文件托管在GitHub上,别人看到也没法得知原文密码是什么。

转自:https://www.jianshu.com/p/93592860993d
相关文章
相关标签/搜索