配置服务的安全问题会很重要,其中的内容是我自己学习的,由于学习时间不长,有可能不是很完备,如果有更好的方案,烦请评论中留言或私信,谢谢!

1. 首先访问配置服务需要设置密码:

使用spring-security使得这件事变得很简单,在pom.xml中引入依赖

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>

在application.properties中指定用户名和密码,

security.user.name=user
security.user.password=yourPW

如果不指定,用户名默认是user,密码会使用随机密码写入到log中。配置客户端也是需要提供账号密码才能访问的,配置客户端的搭建方案后面会说。

2. 大部分公司没能力自己改造git仓库,因此,机密性很高的配置放入git中并不安全。

配置服务提供了对配置的加密和解密,由于配置客户端会很多,并不安全,建议将加密和解密全部放在配置服务中完成。

3. 加密配置文件内容:

Config Server 可以使用对称(共享)密钥或者非对称密钥(RSA密钥对).就安全性来讲,非对称密钥是优先选择,但是,选择对称密钥进行加解密处理显得非常方便,因为,只需要简单的配置一个属性值.

加密使用公钥完成,私钥用来解密。原则上,如果你只想加密,服务器上只配置公钥(用私钥在本地自行解密)。实际中,建议将加密和解密全部放在配置服务中完成。原因是这种方式会把密钥管理过程让所有的客户端都知道,而不是把焦点聚集在服务器上。从另外一个方面讲,一个非常有益的建议是如果你的配置服务器相对不安全,只能有少数客户端需要加密配置属性。

加密配置:

  1. 生成密钥库

$ 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

  2. 配置配置服务配置文件

encrypt:keyStore:location: classpath:/server.jkspassword: letmeinalias: mytestkeysecret: changeme

4. 如何加密配置文件内容信息

经过上面的配置,配置服务器已经具备给配置文件内容加密与解密的能力,下面介绍如何进行加密和解密

服务器会暴露 /encrypt/decrypt接口。如果你想编辑远程配置文件,你可以请求Config Server的/encrypt接口来加密。

逆操作也可以通过/decrypt 来完成。

你加密的值增加{cipher}前缀后,放入配置文件中即可,从配置服务器获取的配置会是经过自动解密的内容。

当客户端程序对主环境资源不能确定时,/encrypt 和/decrypt接口也接受带有路径形式的请求 /*/{name}/{profiles},这样可以针对每个application(name)和profile进行详细的控制加解密。

如果以这种细粒度的方式来控制加解密,你必须提供一个TextEncryptorLocator类型的@Bean,使用这个Bean 可以为每个名称或profile创建不同的加密方法。默认提供的并没有这个功能(所有加密使用相同的密钥)。

转载于:https://www.cnblogs.com/vincent0928/p/6166115.html

spring-cloud-config安全问题相关推荐

  1. Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务

    上一篇文章,讲了SpringCloudConfig 集成Git仓库,这一篇我们讲一下SpringCloudConfig 配和 Eureka 注册中心一起使用 在分布式系统中,由于服务数量巨多,为了方便 ...

  2. Spring Cloud(八)高可用的分布式配置中心 Spring Cloud Config

    在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config,它支持配 ...

  3. spring cloud连载第二篇之Spring Cloud Config

    Spring Cloud Config Spring Cloud Config为分布式服务提供了服务侧和客户侧的外部配置支持.通过Spring Cloud Config你可以有一个统一的地方来管理所有 ...

  4. spring cloud config将配置存储在数据库中

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Spring Cloud Config Server最常见是将配置文件放在本地或者远程Git仓库, ...

  5. java B2B2C Springcloud多租户电子商城系统-(七)高可用的分布式配置中心(Spring Cloud Config)...

    讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下: 一. ...

  6. 企业分布式微服务云SpringCloud SpringBoot mybatis (七)高可用的分布式配置中心(Spring Cloud Config)...

    讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用,架构图如下: 一. ...

  7. 为Spring Cloud Config Server配置远程git仓库

    简介 虽然在开发过程,在本地创建git仓库操作起来非常方便,但是在实际项目应用中,多个项目组需要通过一个中心服务器来共享配置,所以Spring Cloud配置中心支持远程git仓库,以使分散的项目组更 ...

  8. Spring Cloud Config 集中式配置

    2019独角兽企业重金招聘Python工程师标准>>> 本指南通过Spring cloud config服务器引导你建立和消费配置. 你要构建什么? 你需要设置一个config服务器 ...

  9. Spring Cloud Config 配置中心

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

  10. java springcloud版b2b2c社交电商spring cloud分布式微服务 (七)高可用的分布式配置中心(Spring Cloud Config)...

    Springcloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取 ...

最新文章

  1. springcloud分布式事务_Springcloud 分布式事务集成Naco Seata
  2. [ARM异常]-ARM Core中与中断相关的寄存器
  3. SAP用户权限控制大解析及权限进阶分析
  4. 零基础学Python(第三章 基础语法)
  5. 什么是 SAP Commerce yForms
  6. github操作命令
  7. 数据契约(DataContract)
  8. Bash脚本教程之变量
  9. Java原子操作类AtomicInteger应用场景
  10. 编程模式(schema) —— 表驱动法(table-driven)
  11. 思维导图的了解和使用
  12. C语言练习题,从键盘输入一个字符,在给定的字符串中寻找该输入字符,若找到将该字符从字符串中删掉,并输出该字符串,没有找到给出提示信息“未找到”。
  13. 红帽为什么要加入阿里云的朋友圈?
  14. 简转繁的JS代码(转)
  15. rtmp/rtsp测试地址 2019/11/22日亲测可用
  16. 3D角色模型欣赏:伊什塔尔-金星女神
  17. 马云:30年后每对年轻人要养8个老人 管理5套房子
  18. 数据架构与数据库建模
  19. 友善之臂 mini2440 linux led 驱动代码,[转]mini2440的LEDS驱动程序和测试程序详解
  20. scp 拷贝文件到服务器,scp 拷贝文件到远程服务器

热门文章

  1. hdu 3585(二分+最大团)
  2. 用SAXBuilder、Document、Element操作xml
  3. 为了测试Writer的发图功能,也为了让girls现身。
  4. 《LeetCode力扣练习》剑指 Offer 15. 二进制中1的个数 Java
  5. 利用Spring-Boot解析Excel、用Java分析Excel、告别手动输入用程序读取Excel
  6. 技嘉G31主板学习笔记
  7. ggtree实现系统发育树可视化
  8. 海康威视连续采图设置ROI局部显示_c#
  9. vue 高阶面试题_高级Web前端工程师面试之Vue问题汇总解析
  10. 易语言mysql连接模块_易语言mysql链接模块libmySQL6.1模块源码