Spring Cloud配置中心服务端对称加密
spring boot版本:2.1.10.RELEASE
spring cloud版本:Greenwich.SR4
微服务搭建Spring Cloud配置中心【服务端】
为什么要加密
首先我们要知道加密的是什么,加密的是配置文件的信息,上一篇文章我们都是使用明文的,但是如果是重要的信息,比如说是数据库的账号和密码就是十分重要的信息,不允许泄露的,一旦泄露会造成重大的损失。
PS:由于Spring Cloud 的bug,Dalston.SR4、Dalston.SR3、Dalston.SR2版本不能对配置文件加密,如果需要进行加密,请调整版本。
添加配置
在配置服务端时,配置都是在 application.properties
中配置的,而且在spring boot 1.x中,下边的配置也是在 application.properties
配置的,但是在spring boot 2.x中,需要在 bookstrap.properties
中配置。
#配置对称加密的key
encrypt.key=jz
在spring boot 2.x中,若将上边的配置加在了 application.properties
,访问 http://127.0.0.1:9100/encrypt/status
会显示
{“description”:“The encryption algorithm is not strong enough”,“status”:“INVALID”}
下载jar包
在使用Spring Cloud Config的加密解密功能时,有一个必要的前提需要我们注意。为了启用该功能,我们需要在配置中心的运行环境中安装不限长度的JCE版本(Unlimited Strength Java Cryptography Extension)。虽然,JCE功能在JRE中自带,但是默认使用的是有长度限制的版本。我们可以从Oracle的官方网站中下载到它。
我的是jdk8,下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载解压后有三个文件
将两个jar包分别复制到 jdk的安装目录 jdk1.8.0_181\jre\lib\security
和 jre的安装目录 jre1.8.0_181\lib\security
中,如果已经存在这两个jar包,则将其 替换。
相关操作
以上步骤做完后在浏览器访问 http://127.0.0.1:9100/encrypt/status
将会显示
{“status”:“OK”}
以下操作为 POST 请求:
加密:http://127.0.0.1:9100/encrypt
解密:http://127.0.0.1:9100/decrypt
可以自己写一个工具类,来获取解密或解密后的信息
在将加密后的信息写到配置文件中时,需要在前边添加 {cipher}
,例如:
spring.datasource.username={ cipher}5bd5083c7eed334a041c9081bec235335b66592d4e2a3f43409f37daa5905deb
还没有评论,来说两句吧...