SpringCloud配置中心属性加解密(对称加解密)

SpringCloud配置中心属性加解密(对称加解密)


SpringCloud可以在本地进行预处理的解密,需要在JVM添加JCE扩展

1. 下载JCE 安装对应的java版本

  1. 下载地址
  2. 下载后,将local_policy.jarUS_export_policy.jar分别放到
    C:\Java\jdk1.8\jdk1.8.0_45\jre\lib\security
    C:\Java\jdk1.8\jre1.8.0_45\lib\security
    两个目录下

local_policy.jarUS_export_policy.jar 加解密的策略文件

2. 使用keytool生产证书

2.1 keytool 是java 用于管理密钥和证书的工具

其功能包括:

  1. 创建并管理密钥
  2. 创建并管理证书
  3. 作为CA 为证书授权
  4. 导入导出证书

主要格式:

  1. keytool 采用 keystore 文件来存储密钥及证书,其中可包括私钥、信任证书;
  2. keystore 文件主要使用 JKS格式(也可支持其他格式),带密钥存储;其中私钥的存储也有独立的密码;

2.2 命令

具体可参照:数字证书中keytool命令使用说明

说明:命令中文部分可自行定义
例:
keytool -genkeypair -alias 实体别名(包括证书私钥) -keyalg RSA -keysize 2048 -validity 3650 -dname “CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US” -keypass 私钥加解密密码 -keystore 证书名称.jks -storepass 文件存储密码

若不指定目录,则生产的证书默认放在当前目录

命令参数说明:
-alias: 实体别名(包括证书私钥)
-keyalg: 指定密钥的算法
-keysize: 指定密钥长度
-validity: 指定创建的证书有效期多少天(默认为90天)
-dname: 指定证书拥有者信息
-keypass: 指定别名条目的密码
-keystore: 指定密钥库的名称(就像数据库一样的证书库,可以有很多个证书,cacerts这个文件是jre自带的,也可以使用其它文件名字,如果没有这个文件名字,它会创建这样一个)
-storepass: 指定密钥库的密码

3. 修改配置文件

将生产的证书***.jks 放到项目resource下,bootstrap.yml增加以下配置:

encrypt:
  key-store:
    location: ***.jks
    password: ***
    alias: ***
    secret: ***

4. 加密和解密

4.1 查询KEY状态

命令:
curl http://127.0.0.1:8080/encrypt/status
在这里插入图片描述

4.2 encrypt 加密

命令:
curl -X POST http://127.0.0.1:8080/encrypt -d KEY
在这里插入图片描述

4.3 decrypt 解密

命令:
curl -X POST http://127.0.0.1:8080/encrypt -d AQA1RbeAy…
在这里插入图片描述

5. 修改项目中原来使用的明文密码

在这里插入图片描述
修改完成之后重启项目即可

你可能感兴趣的:(SpringCloud)