Nacos 配置加密
Nacos 配置加密
官网介绍太简单,而且GitHub 网络受限,随缘访问。Gitee 发现有镜像仓库,同步的最新版本
但是官网中提到的加密插件,未找到相应的镜像仓库,需要在 GitHub 拉取。
Nacos 插件打包
直接用 idea 打开,必须打包 install 到本地,maven 仓库无该依赖。
新版本的 nacos 集成了达梦数据库,打包时报错,需自行下载达梦驱动,配置路径。
生成后的maven
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-aes-encryption-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Nacos 源码编译
将上述 maven 依赖,添加到源码config 模块下
修改 console 模块 application.properties 文件,配置 MySQL数据库
新版本的 nacos spring.datasource.platform=mysql 已经弃用,改为 spring.sql.init.platform=mysql
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
只需修改配置
spring.sql.init.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos-2.3.0?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=admin123456
修改 distribution 设置 单机启动
这里设置好生成的 jar 包,默认单机启动。
测试加密
上述工作完成后,对整个 nacos 项目整体 clean 、 package 、 install 。
启动 console 模块下的 Nacos 启动类,访问 nacos
按官网文档创建加密配置
- 打开 Nacos 控制台,点击新建配置。
- 配置前缀使用cipher-[加密算法名称]-dataId来标识这个配置需要加密,系统会自动识别并加密。例如使用 AES 算法来解密配置:cipher-aes-application-dev.yml。
- 点击保存,查看数据库
正常你会看到数据库加密内容如下,content 被加密后的配置,encrypted_data_key 秘钥
测试成功后
在控制台项目根目录执行如下命令,distribution 模块 target 目录下 生成 nacos 压缩包
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
解压后,按正常流程配置数据源,打开鉴权,启动测试。
微服务配置
nacos 配置文件添加 cipher-aes- 前缀后, 需要修改bootstrap.yml 文件,读取相应的配置中心名称(默认按服务名称读取)
示例如下:
spring:
application:
name: xxx
cloud:
nacos:
discovery:
server-addr: ${NACOS_HOST:127.0.0.1}:${NACOS_PORT:8848}
config:
server-addr: ${spring.cloud.nacos.discovery.server-addr}
file-extension: yml
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# 重点
name: cipher-aes-${spring.application.name}
username: nacos
password: nacos
# 排除避免gateway跟springboot版本冲突
autoconfigure:
exclude: org.springframework.cloud.gateway.config.GatewayAutoConfiguration,org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration
profiles:
active: @profiles.active@
本文来自博客园,作者:暮雨寒冬,转载请注明原文链接:https://www.cnblogs.com/good--luck/p/18001246