配置内容的加密解密

很多场景下很多场景下,对于某些敏感的配置内容,例如数据库账号密码等应当加密存储。Config Server为配置内容的加密与解密提供了支持。

安装JCE

Config Server的加密解密功能依赖JCE(Java Cryptography Extension)。
jdk8默认提供了,如果未在目录(/Library/Java/JavaVirtcy Machines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/security)下找到policy文件夹,可以去官网下载JCE。然后放进去。

对称加密

在 Config Server 项目中 添加一个bootstrap.yml,一定要新增加配置文件,在原来的配置文件中添加配置无效。增加以下配置。

encrypt:key: config

然后启动项目,在终端输入curl http://localhost:8011/encrypt -d user。可以得到user的加密串。

weiweideMacBook-Pro:~ pengweiwei$ curl http://localhost:8011/encrypt -d user
b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883

输入 curl http://localhost:8011/decrypt -d b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883

weiweideMacBook-Pro:~ pengweiwei$ curl http://localhost:8011/decrypt -d b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883
user

说明能正常加密解密。

加密解密数据库密码

在git上新建一个文件config-dev.yml或者修改原来的properties文件。加入数据库配置。

spring:datasource:name: userpassword: '{cipher}b600ed1981ad0a977c219c946274f03c6ffe13626c0f1c1df5a6bc70efdcb883'

如果不加{cipher}的话,将不会解析出明文。访问http://localhost:8011/config-dev.yml。可以看到。

下面这种方式访问也可以。

如果想 Config Server 不解密,直接返回密文本身,由Config Client 自行解密的话。可在Config Server中加入以下配置。

spring:cloud:config:server:encrypt:enabled: false

非对称加密

非对称加密相对于对称加密要严格安全一些,但对称加密相对简单。

命令行执行以下命令。

keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" -keypass changeme -keystore server.jks -storepass letmein

然后将生成的 server.jks复制到Config Server的resources目录下。然后在bootstrap.yml文件中新增配置。

encrypt:key-store:location: classpath:/server.jkspassword: letmein # 这些参数和 生成server.jks文件的命令里的参数要对应alias: mytestkey # 这些参数和 生成server.jks文件的命令里的参数要对应secret: changeme # 这些参数和 生成server.jks文件的命令里的参数要对应

然后pom文件中添加资源路径的配置。

            <resources><resource><directory>src/main/resources</directory><filtering>true</filtering><excludes><exclude>**/*.jks</exclude></excludes></resource><resource><directory>src/main/resources</directory><filtering>false</filtering><includes><include>**/*.jks</include></includes></resource></resources>

然后访问curl http://localhost:8011/encrypt -d user。如果遇到下面的错误。

{"timestamp":"2020-01-05T11:05:26.560+0000","status":500,
"error":"Internal Server Error",
"message":"Unable to initialize due to invalid secret key","path":"/encrypt"}

这就是说明JAVA_HOME/jre/lib/security下缺少JCE的包。将下载的JCE的两个jar包复制进去就好了。

然后再访问curl http://localhost:8011/encrypt -d user。就能看到结果了。

weiweideMacBook-Pro:Downloads pengweiwei$ curl http://localhost:8011/encrypt -d user
AQAUpWp6o1qL6HEViPjGe1t87nMDyEoUgMHJccV+czETNYRJWghMlKhr8Kwm39NJBcP9Xtzcu505q1wPKobv05o6+/Qi422ws+y5xg
NzLLniLWlXNO8//mFBfOTPAcOeZEOFe42rSB33CNqX2pSJFETOBJeMeBZWzE/2vqwoxWpGrSj1QpNsgHFqrz0l2cFs/hjbxYNg4c3H
SsZ5RJ6pPHCXB7ZmdlwMa4tvZZikudBw1/SfXXsWEcMelMSvuM+wjdHnRmc9pBDKVwjSpzRUg628fZiYprtXViDVNlXoSpu4I28g4j
RuDNvbS6/3ZzWQO7f5gUjfpi3PLL6bbGNTNDzTqkzmSD+sNZHldmJrdl2eOC3d/2cuSXK2qC6PsY2eaTk=

Spring Cloud Config 配置的加密解密相关推荐

  1. (七)Alian 的 Spring Cloud Config 配置中心(客户端)

    目录 一.背景 二.maven依赖 三.配置文件 四.验证 一.背景   通过上一篇文章,我们已经搭建了配置中心了,接下里我们继续改造我们的订单服务了,之前我们的订单服务的数据库配置还是写在配置文件中 ...

  2. Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!

    本文导读: Spring Cloud Config 基本概念 Spring Cloud Config 客户端加载流程 Spring Cloud Config 基于消息总线配置 Spring Cloud ...

  3. (六)Alian 的 Spring Cloud Config 配置中心(服务端)

    目录 一.简介 二.数据库 2.1.应用表 2.2.属性表 2.3.视图 2.4.初始化数据 三.配置 3.1.pom.xml 3.2.application.properties 3.3.主类 3. ...

  4. Spring Cloud Config对特殊字符加密的处理

    之前写过一篇关于配置中心对配置内容加密解密的介绍:<Spring Cloud构建微服务架构:分布式配置中心(加密解密)>.在这篇文章中,存在一个问题:当被加密内容包含一些诸如 =. +这些 ...

  5. Spring Cloud Config配置服务

    文章目录 前言 一.Spring Cloud Config Service 引入POM文件 启动配置服务 基于(Native)本地配置 配置类NativeEnvironmentProperties 解 ...

  6. Spring Cloud Config 配置中心

    1.构建config-server 创建一个pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...

  7. spring cloud config配置中心源码分析之注解@EnableConfigServer

    spring cloud config的主函数是ConfigServerApplication,其定义如下: @Configuration @EnableAutoConfiguration @Enab ...

  8. Spring Cloud Config配置中心的使用

    一.概述 1. 为什么使用? 1> 配置文件太多,不方便维护 2> 配置文件一般都保存这各种明文显示的密码,无法保证配置内容的安全性,也无法做到按权限分配给个人 3> 更新配置项目需 ...

  9. git在clone时需要输入密码Enter passphrase for key 导致spring cloud config 配置中心无法拉取配置文件的解决方法

    前几天把系统从win7换到了win10 重装了开发环境 一直没什么问题 今天在调试spring cloud 时 发现无论如何都拉取不到配置文件, 通过微服务日志提示 Could not locate ...

最新文章

  1. 在Visual Studio 2010中创建多项目(解决方案)模板【三】
  2. 计算机仿真氢光谱实验,氢氘灯光谱实验报告..docx
  3. 面试:Spring Boot 中的条件注解底层是如何实现的?
  4. centos radius mysql_FreeRadius2 MySQL配置
  5. HA:HADOOP高可用机制
  6. 今日恐慌与贪婪指数为92 贪婪程度与昨日持平
  7. android快速搭建界面,怎么样能快速搭建一个Android APP的界面和框架?
  8. SQL Server 2005 中的客户端 XML 处理
  9. 模糊:让你的代码远离偷窥之眼
  10. BCLinux7.6
  11. 数据库系统原理与应用教程(041)—— MySQL 查询(三):设置查询条件
  12. 预防跌倒-笑做“不倒翁”
  13. R语言调色板——colors()
  14. 大数乘法 和 多项式乘法
  15. DELL T7910服务器工作站的双系统安装!
  16. 用pymysql批量导入数据
  17. win下载MinGW并安装详细记载
  18. TechSmith Snagit 教程——Snagit如何录制视频?
  19. Postman接口断言上下游参数传递
  20. Mac 破解Adobe Photoshop CS6

热门文章

  1. CAEmitterLayer粒子发射器的神奇效果
  2. 央行数字货币DCEP指南
  3. 电子书大全下载链接 常年有效 免费下载
  4. 热门领域、常用短视频工具分享,新手抓紧收藏,每天多200收益
  5. 小米6怎么解除温控_小米6性能模式_小米6性能模式怎么关
  6. 【DVWA】DVWA的下载、安装与配置
  7. 算法图解之快速排序(JAVA版本)
  8. EXCEL中删除不包含字符串的行的方法
  9. 编程金融小白学 股票期权 lv.0 基本概念
  10. 还在问腾讯云怎么样?这一篇云直播解析速速收好!