Spring Cloud Config 配置的加密解密
配置内容的加密解密
很多场景下很多场景下,对于某些敏感的配置内容,例如数据库账号密码等应当加密存储。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 配置的加密解密相关推荐
- (七)Alian 的 Spring Cloud Config 配置中心(客户端)
目录 一.背景 二.maven依赖 三.配置文件 四.验证 一.背景 通过上一篇文章,我们已经搭建了配置中心了,接下里我们继续改造我们的订单服务了,之前我们的订单服务的数据库配置还是写在配置文件中 ...
- Spring Cloud Config 配置中心实践过程中,你需要了解这些细节!
本文导读: Spring Cloud Config 基本概念 Spring Cloud Config 客户端加载流程 Spring Cloud Config 基于消息总线配置 Spring Cloud ...
- (六)Alian 的 Spring Cloud Config 配置中心(服务端)
目录 一.简介 二.数据库 2.1.应用表 2.2.属性表 2.3.视图 2.4.初始化数据 三.配置 3.1.pom.xml 3.2.application.properties 3.3.主类 3. ...
- Spring Cloud Config对特殊字符加密的处理
之前写过一篇关于配置中心对配置内容加密解密的介绍:<Spring Cloud构建微服务架构:分布式配置中心(加密解密)>.在这篇文章中,存在一个问题:当被加密内容包含一些诸如 =. +这些 ...
- Spring Cloud Config配置服务
文章目录 前言 一.Spring Cloud Config Service 引入POM文件 启动配置服务 基于(Native)本地配置 配置类NativeEnvironmentProperties 解 ...
- Spring Cloud Config 配置中心
1.构建config-server 创建一个pom.xml <?xml version="1.0" encoding="UTF-8"?> <p ...
- spring cloud config配置中心源码分析之注解@EnableConfigServer
spring cloud config的主函数是ConfigServerApplication,其定义如下: @Configuration @EnableAutoConfiguration @Enab ...
- Spring Cloud Config配置中心的使用
一.概述 1. 为什么使用? 1> 配置文件太多,不方便维护 2> 配置文件一般都保存这各种明文显示的密码,无法保证配置内容的安全性,也无法做到按权限分配给个人 3> 更新配置项目需 ...
- git在clone时需要输入密码Enter passphrase for key 导致spring cloud config 配置中心无法拉取配置文件的解决方法
前几天把系统从win7换到了win10 重装了开发环境 一直没什么问题 今天在调试spring cloud 时 发现无论如何都拉取不到配置文件, 通过微服务日志提示 Could not locate ...
最新文章
- 在Visual Studio 2010中创建多项目(解决方案)模板【三】
- 计算机仿真氢光谱实验,氢氘灯光谱实验报告..docx
- 面试:Spring Boot 中的条件注解底层是如何实现的?
- centos radius mysql_FreeRadius2 MySQL配置
- HA:HADOOP高可用机制
- 今日恐慌与贪婪指数为92 贪婪程度与昨日持平
- android快速搭建界面,怎么样能快速搭建一个Android APP的界面和框架?
- SQL Server 2005 中的客户端 XML 处理
- 模糊:让你的代码远离偷窥之眼
- BCLinux7.6
- 数据库系统原理与应用教程(041)—— MySQL 查询(三):设置查询条件
- 预防跌倒-笑做“不倒翁”
- R语言调色板——colors()
- 大数乘法 和 多项式乘法
- DELL T7910服务器工作站的双系统安装!
- 用pymysql批量导入数据
- win下载MinGW并安装详细记载
- TechSmith Snagit 教程——Snagit如何录制视频?
- Postman接口断言上下游参数传递
- Mac 破解Adobe Photoshop CS6