成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nacos 中的配置文件如何實現加密傳輸

安全 數據安全
用了 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 按鈕,將項目編譯安裝到本地倉庫:

圖片圖片

接下來 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 項目中,在 Nacos 項目中引入這個插件的依賴,建議在 config 模塊中引入,如下圖:

圖片圖片

引入內容如下:

<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&cnotallow=1000&socketTimeout=3000&autoRecnotallow=true&useUnicode=true&useSSL=false&serverTimeznotallow=UTC
db.user=root
db.password=123

配置完成后,本地提前準備好一個名為 nacos_config 的數據庫,并執行 distribution/conf/mysql-schema.sql 腳本文件,將所需的表先創建出來。

接下來,為項目添加啟動參數,我們以單機而不是集群的方式來啟動 Nacos,如下:

圖片圖片

上圖大家重點看兩個地方,一個是啟動類所處的位置,另外一個則是啟動參數。

好啦,現在我們就可以像啟動 Spring Boot 項目那樣啟動 Nacos 了。

3. 發布

如果我們想將項目打包發布的話,松哥建議大家先從 GitHub 上下載官方的壓縮包,官方的壓縮包里邊,有一個 target 目錄,這個目錄下有一個 nacos-server.jar 文件,這個就是 nacos 的啟動包了。對于這個官方的壓縮包,大家正常配置就行了。

然后,在 IDEA 中,對我們剛剛處理過的 nacos,重新打包,不過記得打包的時候設置一下環境,如下:

圖片圖片

設置好環境之后,然后對項目重新進行打包。打包完成后,生成了新的 nacos-server.jar,如下:

圖片圖片

用這個 jar 包替換掉官方壓縮包中的 jar,然后啟動 nacos 即可。

4. 訪問

啟動成功之后,我們就可以直接訪問 nacos 了,用法和平時用法都一樣,不同的是,在創建配置文件的時候,文件名有一個固定的前綴 cipher-aes-,有了這個前綴,這個配置文件就會自動加密,否則就不會加密。

例如我現在創建如下配置文件:

圖片圖片

創建完成后,我們去數據庫中看一下這個配置文件:

圖片圖片

可以看到,這個 content 字段已經是一個加密的字符串了(如果沒有我們沒有加密,則 content 字段保存的就是明文 name=javaboy)。

現在我們創建一個項目,來加載這個加密的配置文件。

創建項目時候,選擇 Nacos Configuration,如下:

圖片圖片

創建好之后,記得手動加上剛剛的那個加密插件的依賴(解密的時候會用到)。

項目名稱記得設置為 cipher-aes-nacos:

# 應用名稱
spring.application.name=cipher-aes-nacos
# 應用服務 WEB 訪問端口
server.port=8080

其他都正常配置即可。

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2022-11-21 10:49:29

Nacos配置加密

2011-09-07 14:43:24

2018-05-30 08:31:08

2015-05-20 13:19:23

文件加密影線加密

2009-11-07 14:29:40

2013-07-11 14:50:51

2022-02-28 07:37:02

Java配置參數

2010-11-09 17:28:27

嗅探嗅探網絡TFTP

2019-11-22 10:00:53

ICC配置文件Windows 10

2011-03-02 11:23:48

2020-07-20 14:03:03

Chrome 86加密信息

2010-03-29 09:23:00

2018-03-16 15:14:08

Android傳輸文件

2011-03-25 17:13:37

Nagios配置文件

2011-02-25 16:39:34

proftpd配置文件

2021-11-07 14:00:16

JekyllBashAPI后端

2021-03-12 08:00:00

Kubernetes工具

2021-07-08 21:19:04

BashLinux

2010-03-25 18:09:23

Nginx配置文件

2010-11-12 09:44:59

Cassandra配置
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费一级欧美在线观看视频 | 性精品 | 久草网站 | 国产91一区二区三区 | 91视频免费视频 | 一区二区久久精品 | 狠狠热视频 | 亚洲一二三区在线观看 | 91精品国产一区二区三区香蕉 | 久久免费高清视频 | 中文字幕免费中文 | 一区二区三区免费观看 | 国产精品亚洲第一区在线暖暖韩国 | 夜夜骑首页 | 超碰天天 | 亚洲乱码国产乱码精品精98午夜 | 国产精品视频一二三 | 国产精品久久国产精品 | 亚洲精品久久久久久一区二区 | 日韩精品一区二区三区中文在线 | 国产探花在线精品一区二区 | 精品欧美乱码久久久久久1区2区 | 高清色| 九九热在线视频免费观看 | 成人久久久 | 国产在线精品一区二区 | 91天堂网| 午夜一区二区三区在线观看 | 亚洲综合精品 | 亚洲精品免费观看 | 国产一区二区影院 | 91久久精品一区二区三区 | 在线观看视频91 | 国产小视频在线观看 | 久久久人成影片免费观看 | 欧美激情综合 | 亚洲欧美一区二区三区在线 | 一区二区三区在线免费 | 成人免费在线视频 | 欧美成人h版在线观看 | 成人在线电影在线观看 |