欢迎来到徐庆高(Tea)的个人博客网站
磨难很爱我,一度将我连根拔起。从惊慌失措到心力交瘁,我孤身一人,但并不孤独无依。依赖那些依赖我的人,信任那些信任我的人,帮助那些给予我帮助的人。如果我愿意,可以分裂成无数面镜子,让他们看见我,就像看见自己。察言观色和模仿学习是我的领域。像每个深受创伤的人那样,最终,我学会了随遇而安。
当前位置: 日志文章 > 详细内容

Nacos配置内容加密实现过程

2025年08月06日 Java
一、背景因为项目中安全检查的要求,需要将nacos配置的内容进行加密,所以需要实现将配置内容加密处理,这里引入nacos-aes-encryption-plugin插件来完成这一需求。二、实现步骤1.

一、背景

因为项目中安全检查的要求,需要将nacos配置的内容进行加密,所以需要实现将配置内容加密处理,这里引入nacos-aes-encryption-plugin插件来完成这一需求。

二、实现步骤

1. 重新编译nacos服务端

1.1  从github下载nacos源码,地址https://github.com/alibaba/nacos

1.2  在config模块中引入插件:

<dependency>
    <groupid>com.alibaba.nacos</groupid>
    <artifactid>nacos-aes-encryption-plugin</artifactid>
    <version>1.0.0-snapshot</version>
</dependency>

1.3  服务端编译:

cd nacos && mvn -prelease-nacos -dmaven.test.skip=true clean install -u

其中,-prelease-nacos 是编译参数,表示编译的是 nacos release 版本。-u参数表示强制更新依赖。

1.4 编译完成后,会在distribution/target目录下生成nacos-server-x.x.x.zip包,可作为nacos的版本包直接使用。

1.5 使用上面的包重新部署nacos

2. nacos页面配置

进入nacos控制台,配置内容正常处理,配置名以"cipher-aes-"开头。

例:cipher-aes-user

3. springboot应用服务端(后端服务)

3.1   在服务中引入

<dependency>
    <groupid>com.alibaba.nacos</groupid>
    <artifactid>nacos-aes-encryption-plugin</artifactid>
    <version>1.0.0-snapshot</version>
</dependency>

3.2  将项目的yml文件中的"spring.cloud.nacos.config.prefix"改为"cipher-aes-"开头。

例:cipher-aes-user。

4. 结果

上述配置完之后,在数据库端看到的配置内容就是加密后的内容,但是在应用端和web端读取的时候都是解密后的明文。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。