Nacos 中的配置文件如何实现加密传输

这篇具有很好参考价值的文章主要介绍了Nacos 中的配置文件如何实现加密传输。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小伙伴们知道,Spring Cloud Config 很早就提供了配置文件的加解密功能,并且支持对称加密和非对称加密两种不同的模式。Nacos 作为分布式配置中心+服务注册中心的合体,在配置文件加密这块一直差点意思,不过好在,如果你使用的 Nacos 版本大于 2.0.4 这个版本,那么现在也可以通过插件的方式来实现配置文件加密了。

1. 配置文件加密

松哥在之前的微服务视频中讲过,Spring Cloud Config 的对称加密和非对称加密,加密后的文件格式类似下面这样:

name={cipher}密文
password={cipher}密文

可以看到,在 Spring Cloud Config 中,对配置文件的加密是针对字段一个一个加密的。

而 Nacos 中的加密,则是对整个配置文件的内容进行加密,这点和 Spring Cloud Config 不同。

Nacos 中是通过 SPI 的机制抽象出加密和解密的操作,Nacos 默认提供 AES 对称加密的实现,不过用户也可以自定义加解密的实现方式。

在 Nacos 服务端启动的时候就会加载所有依赖的加解密算法,然后通过发布配置的 dataId 的前缀来进行匹配是否需要加解密和使用的加解密算法。

客户端发布的配置会在客户端通过 filter 完成加解密,也就是配置在传输过程中都是密文的,而控制台发布的配置会在服务端进行处理。

换言之,用了 Nacos 的配置文件加密插件之后,我们在 Nacos 管理页面上配置的配置文件,将会以加密的密文形式存储在数据库中,也会以密文的形式传输到客户端,然后在客户端自动完成解密操作。大致上就是这样一个过程。接下来我们就来看看具体的用法。

2. 实践

首先我们需要下载 nacos 源码进行编译,编译完成之后,需要将之安装到本地 Maven 仓库(因为编译加密插件需要用到 Nacos)。

首先 clone nacos 源码,如下:

git clone https://github.com/alibaba/nacos.git

下载之后,个人建议用 IDEA 去编译,操作方便一些(因为后续还有其他操作)。

所以我们先用 IDEA 打开项目,确认项目所需依赖均已下载完毕,然后点击 install 按钮,将项目编译安装到本地仓库:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

接下来 clone 配置文件加解密的插件,如下:

git clone https://github.com/nacos-group/nacos-plugin.git

也用 IDEA 打开这个插件项目。这个插件编译要用到我们刚刚编译安装好的 Nacos,但是给的版本号不对,需要我们手动修改下,位置在 nacos-plugin/pom.xml,修改里边 Nacos 的版本号,从 2.2.0-SNAPSHOT 改为 2.2.0-BETA(我刚刚编译安装的是这个版本,大家根据自己的实际情况选择):

<alibaba-nacos.version>2.2.0-BETA</alibaba-nacos.version>

改完之后也执行 install 操作,将所有的插件都安装到本地仓库:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

接下来回到一开始的 Nacos 项目中,在 Nacos 项目中引入这个插件的依赖,建议在 config 模块中引入,如下图:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

引入内容如下:

<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-aes-encryption-plugin</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

加了这个依赖之后,我们的 Nacos 就具备了配置文件加密功能了。

现在我再改一下 console/src/main/resources/application.properties 配置文件,让 Nacos 将数据存入到本地数据库中,如下:

### Count of DB:
db.num=1
spring.sql.init.platform=mysql
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123

配置完成后,本地提前准备好一个名为 nacos_config 的数据库,并执行 distribution/conf/mysql-schema.sql 脚本文件,将所需的表先创建出来。

接下来,为项目添加启动参数,我们以单机而不是集群的方式来启动 Nacos,如下:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

上图大家重点看两个地方,一个是启动类所处的位置,另外一个则是启动参数。

好啦,现在我们就可以像启动 Spring Boot 项目那样启动 Nacos 了。

3. 发布

如果我们想将项目打包发布的话,松哥建议大家先从 GitHub 上下载官方的压缩包,官方的压缩包里边,有一个 target 目录,这个目录下有一个 nacos-server.jar 文件,这个就是 nacos 的启动包了。对于这个官方的压缩包,大家正常配置就行了。

然后,在 IDEA 中,对我们刚刚处理过的 nacos,重新打包,不过记得打包的时候设置一下环境,如下:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

设置好环境之后,然后对项目重新进行打包。打包完成后,生成了新的 nacos-server.jar,如下:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

用这个 jar 包替换掉官方压缩包中的 jar,然后启动 nacos 即可。

4. 访问

启动成功之后,我们就可以直接访问 nacos 了,用法和平时用法都一样,不同的是,在创建配置文件的时候,文件名有一个固定的前缀 cipher-aes-,有了这个前缀,这个配置文件就会自动加密,否则就不会加密。

例如我现在创建如下配置文件:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

创建完成后,我们去数据库中看一下这个配置文件:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

可以看到,这个 content 字段已经是一个加密的字符串了(如果没有我们没有加密,则 content 字段保存的就是明文 name=javaboy)。

现在我们创建一个项目,来加载这个加密的配置文件。

创建项目时候,选择 Nacos Configuration,如下:

nacos加密配置,java,springcloud,微服务,java,spring cloud,微服务

创建好之后,记得手动加上刚刚的那个加密插件的依赖(解密的时候会用到)。

项目名称记得设置为 cipher-aes-nacos

# 应用名称
spring.application.name=cipher-aes-nacos
# 应用服务 WEB 访问端口
server.port=8080

其他都正常配置即可。

好啦,大功告成!Nacos 配置文件加密就实现啦~文章来源地址https://www.toymoban.com/news/detail-662517.html

到了这里,关于Nacos 中的配置文件如何实现加密传输的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nacos配置文件管理、微服务获取Nacos配置文件、热更新、配置共享、配置优先级等

    传统项目中,当我们需要修改配置文件时,需要修改配置文件,停掉服务,重启服务,这样不利于提升用户体验; 而使用Nacos进行项目的配置文件管理,则可以实现热更新配置文件,在Nacos中修改之后,Nacos会通知项目新的配置文件。 添加配置文件 第一步,点击添加配置:

    2023年04月11日
    浏览(42)
  • Nacos配置中心中配置文件的创建、微服务读取nacos配置中心

    在企业项目中会有非常多的服务,不同的开发环境还有不同的配置文件,所以就导致配置文件非常多。 那么肯定就会有一些公共配置,多个服务都是使用过一样的,那么就可以使用配置中心来进行统一管理,避免修改一个配置项要去各个服务都改一遍。 使用传统方式的配置

    2024年02月02日
    浏览(39)
  • Nacos介绍和配置文件详解

    zookeeper有选举的功能,选的时候不能保证系统的可用性,满足的CP Eurka遵守的是AP,peer to peer,去中心化,相互注册 nacos在自动或手动下线服务,使用消息机制通知客户端,服务实例的修改很快响应;Eureka只能通过任务定时剔除无效的服务。 nacos可以根据namespace命名空间,Da

    2024年02月08日
    浏览(41)
  • nacos配置文件优先级

    当前配置文件如下: 优先级:userservice-dev.yml(当前环境配置) userservice.yml(nacos上的) application.yml(本地的) 扩展配置(extension-configs) 共享配置(shared-configs) 同为扩展配置,存在如下优先级关系:extension-configs[3] extension-configs[2] extension-configs[1] extension-configs[0] 同为共享配置

    2024年02月12日
    浏览(36)
  • Nacos配置中心之引用不到配置文件问题

    一、Springboot中application.yml、application.properties和bootStrap.yml的加载顺序 1、SpringApplication位于项目根目录,所以所有得代码要和SpringApplication所在目录平级或下一级 2、以jar包发布springboot项目时,默认会先使用jar包跟目录下的application.properties来作为项目配置文件。 如果在不同的

    2024年02月07日
    浏览(36)
  • java动态获取nacos配置文件

    前言: 在不启动服务的情况下,修改nacos配置文件,可以动态的获取到配置文件的信息,实现动态刷新的效果。 1、依赖jar包 2、相关代码 3、注意事项 1、注解@RefreshScope为动态刷新,如果需要检验是否成功。可以写一个Junit测试,while(true)循环打印获取到的信息。我们修改naco

    2024年02月09日
    浏览(33)
  • springboot如何配置nacos

    您可以按照如下步骤配置Springboot应用连接Nacos配置中心: 添加Nacos依赖:在pom.xml文件中添加以下依赖 在application.properties中添加nacos配置中心的信息 其中: spring.cloud.nacos.config.server-addr 表示Nacos服务器的地址和端口 spring.cloud.nacos.config.namespace 表示Nacos命名空间,可以为空 spr

    2024年02月16日
    浏览(36)
  • nacos在linux中的安装、集群的配置、mysql生产配置

    官方下载地址:https://github.com/alibaba/nacos/releases,根据自己需要的本版去下载就行 下载的是 .tar.gz 后缀的文件是linux版本的 使用tar命令解压,完成之后是一个nacos的文件夹 和windows下的文件夹目录是一样的 要启动的脚本时.sh后缀。 一个nacos的启动要有多个端口号 和windows一样

    2024年02月07日
    浏览(33)
  • springboot读取多文件配置(包括nacos)

    首先来简单了解一下这个类。 ResourceBundle类主要是用来 解决国际化和本地化问题 ,就我的理解,就是类似于前端界面的字体显示,国际化操作一般都要支持多国语言,那么这个ResourceBundle类就能够简单快速的解决这个问题。 同时,这个类只能支持读取properties属性文件,和

    2023年04月09日
    浏览(45)
  • 【微服务】Nacos集群搭建以及加载文件配置

    🔎这里是【微服务】,关注我学习微服务不迷路 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 【微服务】 目前主要更新微服务,一起学习一起进步。 本期主要介绍Nacos集群搭建以及加载文件配置 目录 服务集群 需求 搭建 测试 加载

    2024年01月16日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包