springcloud(四):应用配置中心config的安全设置
springcloud应用配置中心config的安全设置
在springcloud应用开发中,为了方便在线管理我们的配置文件,通常会配一个配置中心config-server,这里托管着应用的一些配置文件,这些配置文件中配置着我们很多的账号信息:如mysql、redis、mongodb、rabbitmq等等的账号和密码。牵扯到账号信息,想必我们要保证如何保证其安全性。
1.保证容器文件访问的安全性,即保证所有的网络资源请求都需要登录
通过springboot配置属性之security,配置security.user.name和security.user.password可以初步达到安全访问的效果。具体配置:在application.yml中配置如下:
![](http://upload-images.jianshu.io/upload_images/9181836-7570ddeaec994e39.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/191)
security: basic: enabled: true
在pom依赖中增加
![](http://upload-images.jianshu.io/upload_images/9181836-99f6d5595228c904.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/584)
重启config-server后,再通过url访问文件资源时,会出现
![](http://upload-images.jianshu.io/upload_images/9181836-8a2c24a95d0a9f0d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
2.将配置中心里所有配置文件中的密码进行加密,保证其密文性
springcloud的配置服务中心具有decrypt/encrypt功能,可以将原文加密成密文,也可以将密文解密成原文。其工作原理是,首先将密码等原文通过开发者设置的key和springcloud中的encrypt加密成密文,用密文替代配置文件中心的原文密码;项目启动加载配置中心时,会自动将密文解密成原文并加载到spring的上下文中(spring上下文中缓存的是原文而不是密文)。具体操作步骤如下
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
![](http://upload-images.jianshu.io/upload_images/9181836-902e34df7d381c80.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/407)
c.重启配置中心服务,会发现
![](http://upload-images.jianshu.io/upload_images/9181836-ac36a34e5e2b9974.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
d.将密码原文加密
![](http://upload-images.jianshu.io/upload_images/9181836-92b48b92f3d2c4b7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
e.将加密后的密文复制,加上{cipher}标识,编辑在配置文件中(标识符和密文中间不能有任何字符,包括空格)
![](http://upload-images.jianshu.io/upload_images/9181836-1ccbd2c18273d8e6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/651)
搞定后,我们的配置文件里所有的密码都是密文,即使将配置文件托管在GitHub上,别人看到也无法得知原文密码是什么。
转自:https://www.jianshu.com/p/93592860993d