Spring cloud conf 配置中心 属性加解密

  • springColud目录

对称加解密


1.首先要添加加解密的配置,即需要在JVM添加JCE扩展.

  • 下载JCE 安装对应的java版本 :java8的版本
  • \jdk1.8.0_161\jre\lib\security 路径下替换文件local_policy.jar, US_export_policy.jar

2.server端添加配置文件bootstrap.xml

  • 若在application.yml添加配置,Spring Cloud Config版本的不同可能还是会出现{“description”:“No key was installed for encryption service”,“status”:“NO_KEY”}
  • 启动服务,输入http://localhost:8888/encrypt/status如果返回{“status”:“OK”}则表示配置成功
encrypt:
  key: spongebob #对称加密key

3.使用curl测试加密和解密

# 加密
curl -X POST http://localhost:8888/encrypt -d myname

# 解密
curl -X POST http://localhost:8888/decrypt -d b13bd23cc343caf584c5db6f34312bfb993590bf2a

4.配置文件中配置信息加密

  • 在yml文件中,必须以英文半角单引号括起来加密值,前面加{cipher}
profile: '{cipher}38d04ae6719798079c4c0263fb375904c13fb2df7112ffca50ceb6a2e3063251'
  • 在properties文件中, 不要加引号
profile={cipher}38d04ae6719798079c4c0263fb375904c13fb2df7112ffca50ceb6a2e3063251

非对称加解密


1.使用keytool生产证书

  • keytool -genkeypair 命令帮助
  -alias                   要处理的条目的别名
  -keyalg                 密钥算法名称
  -keysize               密钥位大小
  -sigalg                 签名算法名称
  -destalias           目标别名
  -dname                   唯一判别名
  -startdate           证书有效期开始日期/时间
  -ext                     X.509 扩展
  -validity              有效天数
  -keypass                   密钥口令
  -keystore             密钥库名称
  -storepass                 密钥库口令
  -storetype           密钥库类型
  -providername     提供方名称
  -providerclass   提供方类名
  -providerarg               提供方参数
  -providerpath         提供方类路径
  -v                              详细输出
  -protected                      通过受保护的机制的口令
  • 使用keytool生成证书
keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass spongebob -keystore server.jks -storepass sbstore

2.将生产的证书server.jks 放到resource下
3.在server端的bootstrap.xml添加配置

encrypt:
  keyStore:
    location: classpath:/server.jks
    password: sbstore
    alias: mytestkey
    secret: spongebob

4.配置文件中配置信息加密

  • 同对称加密的配置方式一致

你可能感兴趣的:(springcloud)