专栏首页玩转JavaEESpring Cloud Config服务端配置细节(二)之加密解密

Spring Cloud Config服务端配置细节(二)之加密解密

在微服务架构中,由于独立的服务个数众多,加上前期测试工作量大,一些原本由运维人员维护的敏感信息会被我们直接写在微服务中,以提高开发效率,但是这种明文存储方式显然是非常危险的,所以我们要对这些信息进行加密,而Spring Cloud Config则提供了对称加解密、非对称加解密的功能来帮助我们完成这一需求。OK,本文我们就来看看如何实现配置信息的加解密。


准备工作

默认情况下我们的JRE中自带了JCE(Java Cryptography Extension),但是默认是一个有限长度的版本,我们这里需要一个不限长度的JCE,这个JCE我们可以直接百度然后在Oracle官网下载,下载之后解压,我们可以看到如下三个文件:

我们需要将这里的两个jar包拷贝到我们的jdk安装目录下,我的是%JAVA_HOME%\jre\lib\security,覆盖该目录下原有的文件。

如此之后,我们的准备工作就完成了。

对称加解密

对称加解密比较简单,直接配置密钥就可以了,在我们前文创建出来的config-server中配置密钥,但是注意这个密钥需要配置在bootstrap.properties中,另外这里还有非常重要一点:Spring Cloud的Dalston.SR3和Dalston.SR2版本在这个问题上是有BUG的,如果用这两个版本在这里测试会没有效果,应该避开使用这两个版本,我这里使用的是Dalston.SR4版本,配置如下:

encrypt.key=sang

配置完成之后,启动我们的config-server工程,然后访问如下地址http://localhost:2007/encrypt/status,如果看到如下访问结果,表示环境搭建成功了:

此时我们就可以通过第三方工具如POSTMAN、RestClient等来访问/encrypt和/decrypt接口,比如说我要给dev这个字符加密,方式如下(我这里以POSTMAN为例,注意是POST请求):

解密方式如下:

OK,拿到加密的字符串之后,我们就可以在配置文件中使用了,还是我们昨天的配置文件,这次我这样来写:

小伙伴们注意,配置文件的值如果是以{cipher}开头,表示该值是一个加密字符,配置中心config-server在获取到这个值之后会先对值进行解密,解密之后才会返回给客户端使用。

非对称加解密

上文我们使用了对称加解密的方式来确保配置文件的安全性,如果使用非对称加解密的方式,我们的安全性将会得到进一步的提高。使用非对称加密的话需要我们先生成密钥对,生成密钥对可以直接使用jdk中自带的keytool工具,方式如下:

keytool -genkeypair -alias config-server -keyalg RSA -keystore config-server.keystore

执行效果如图:

执行成功之后,会在命令执行目录下生成一个名为config-server.keystore的文件,将该文件拷贝到config-server的src\main\resources目录下,然后做如下配置:

encrypt.key-store.location=config-server.keystore
encrypt.key-store.alias=config-server
encrypt.key-store.password=111111
encrypt.key-store.secret=111111

OK,如此之后我们的非对称加密就配置好了,测试方式和对称加密的测试方式一致,我这里就不再演示了。

Spring Cloud Config的加解密我们就说到这里,有问题欢迎留言讨论。

参考资料: 1.《Spring Cloud微服务实战》

本文分享自微信公众号 - 玩转JavaEE(gh_d1ca11234a30),作者:悟空

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Security 中最流行的权限管理模型!

    前面和大家说了 ACL,讲了理论,也给了一个完整的案例,相信小伙伴们对于 ACL 权限控制模型都已经比较了解了。

    江南一点雨
  • Spring Cloud中Hystrix的服务降级与异常处理

    上篇文章我们看了自定义Hystrix请求命令的问题,使小伙伴们对Hystrix的使用有了进一步的了解,之前两篇文章都有涉及到一个叫做fallbackMethod...

    江南一点雨
  • 接口仔也不是好当的,聊一聊前后端分离开发中后端接口设计规范

    随着互联网的高速发展,前端页面的展示、交互体验越来越灵活、炫丽,响应体验也要求越来越高,后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致...

    江南一点雨
  • SHAI2018上海人工智能大会——“聚焦人工智能,助力创新创业” | 活动

    本届大会主要聚焦于人工智能领域的四大方向,1、图像视频处理 2、自然语言处理 3、机器学习 4、智能机器人。

    镁客网
  • 云计算如何推动全球数字化转型

    数字化转型包括寻找更新的商业模式,企业必须不断创新,才能在竞争中领先,而云计算是推动这一创新的催化剂。云计算提供诸如灵活性、成本和劳动力以及可扩展性方面的功能。

    静一
  • 图像处理: 设计 动态高斯滤波

    在做项目的过程中,我发现如果根据 像素点 相对整张图片 的位置 设计 不同的 滤波核大小(即参数 ksize),就可以灵活地对整张图片实现 动态 高斯滤波 了。

    JNingWei
  • 教你如何处理被苹果App Store审核多次被拒和被警告的情况下通过审核

    内部审核渠道人员教你如何处理被苹果App Store审核多次被拒和被警告的情况下通过审核

    jiang chen
  • 塔荐 | 从神经科学到计算机视觉:人类与计算机视觉五十年回顾

    前 言 本文简单的介绍了神经网络近50年的发展历程,从1968年的Hubel和Wiesel开展的猫实验,一直到李飞飞教授等人的成果。从本质上讲解了人工神经网络...

    灯塔大数据
  • 从神经科学到计算机视觉:人类与计算机视觉五十年回顾

    【新智元导读】本文简单的介绍了神经网络近50年的发展历程,从1968年的Hubel和Wiesel开展的猫实验,一直到李飞飞教授等人的成果。从本质上讲解了人工神经...

    新智元
  • 1分钟链圈 | 近百万EOS被盗,EOS主网暂缓激活!国内互联网金融行业5月融资近60亿元,融资33例

    区块链大本营

扫码关注云+社区

领取腾讯云代金券