SpringCloud配置中心内容加密

从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理。

下面使用对称性加密来加密配置,需要配置一个密钥,当然也可以使用RSA非对称性加密,但对称加密比较方便也够用了,这里就以对称加密来配置即可。

1、安装JCE

JDK下的JCR默认是有长度限制的,需要替换没有长度限制的JCE版本。

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

把下载包里面的两个jar文件复制替换到JAVA_HOME/jre/lib/security目录下。

2、添加加密KEY

配置中心配置文件中加入加密密钥。

encrypt: 
  key: 0e010e17-2529-4581-b907-c8edcfd6be09

3、查看加密功能状态

http://192.168.1.237:7100/encrypt/status

功能正常会显示OK

{"status":"OK"}

4、加密解密

develop字符串加密

curl http://192.168.1.237:7100/encrypt -d  develop -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6

develop字符串解密

curl http://192.168.1.237:7100/decrypt -d  0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836 -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6

-u username:password 为basic认证

5、配置文件

spring: 
  datasource: 
    username: '{cipher}0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836'

需要加密的内容以 {cipher}开头,并注意要使节单引号包起来,不然报错。

6、读取配置

这样客户端读取出来的配置是自动解密了的,如果要关闭自动解密功能通过客户端自己来解密,同时也要保留加解密的端点可以通过关闭以下配置即可。

spring.cloud.config.server.encrypt.enabled=false

原文发布于微信公众号 - Java技术栈(javastack)

原文发表时间:2017-10-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Young Dreamer

HTTPS静态服务搭建过程详解

HTTPS服务对于一个前端开发者来说是一个天天打招呼的老伙计了,但是之前我跟HTTPS打交道的场景一直是抓包,自己没有亲自搭建过HTTPS服务,对HTTPS的底...

22570
来自专栏Pythonista

Linux之RPM GPG签名

原文地址:http://linux.chinaunix.net/techdoc/system/2007/09/26/968723.shtml

25530
来自专栏FreeBuf

传输层安全协议抓包分析之SSL/TLS

1. 协议介绍 SSL/TLS是保护计算机网络通讯安全的一类加密协议,它们在传输层上给原先非安全的应用层协议提供加密保护,如非安全的HTTP协议即可被SSL/T...

31890
来自专栏我的博客

keytool使用说明

密钥和证书管理工具 命令: -certreq 生成证书请求 -changealias 更改条目的别名 -delete 删除条目 -exportcert 导...

36660
来自专栏A周立SpringCloud

Config Server——配置内容的加密与解密 详解

我们在Git仓库中存储的都是明文,但在很多场景下,某些敏感的配置内容(例如数据库账号、密码),应当被加密存储以提高安全性。Config Server为配置内容的...

36060
来自专栏码匠的流水账

apk文件的sign以及align命令

对于android应用来说,发布release版本的时候,需要有个正式的签名,这个时候就需要用到jarsigner命令了。

15520
来自专栏Java架构沉思录

深入浅出HTTPS

前言 在之前的文章《深入浅出密码学(上)》、《深入浅出密码学(中)》与《深入浅出密码学(下)》中,沉思君为大家介绍了密码学中一些重要的概念,例如:加密、单向散...

355110
来自专栏从零开始的linux

免密码登录

创建一个目录存放公钥和私钥 mkdir key 生成公钥和私钥 ssh-keygen -t rsaGenerating public/private rsa ...

41850
来自专栏IT笔记

SpringBoot开发案例之集成SSL证书

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供...

50380
来自专栏公众号_薛勤的博客

警告:Establishing SSL connection without server's identity verification is not recommended

Mon Jun 04 00:53:48 CST 2018 WARN: Establishing SSL connection without server's ...

19130

扫码关注云+社区

领取腾讯云代金券