偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Nacos 中的配置文件如何實(shí)現(xiàn)加密傳輸

安全 數(shù)據(jù)安全
用了 Nacos 的配置文件加密插件之后,我們?cè)?Nacos 管理頁(yè)面上配置的配置文件,將會(huì)以加密的密文形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,也會(huì)以密文的形式傳輸?shù)娇蛻舳耍缓笤诳蛻舳俗詣?dòng)完成解密操作。大致上就是這樣一個(gè)過程。接下來我們就來看看具體的用法。

小伙伴們知道,Spring Cloud Config 很早就提供了配置文件的加解密功能,并且支持對(duì)稱加密和非對(duì)稱加密兩種不同的模式。Nacos 作為分布式配置中心+服務(wù)注冊(cè)中心的合體,在配置文件加密這塊一直差點(diǎn)意思,不過好在,如果你使用的 Nacos 版本大于 2.0.4 這個(gè)版本,那么現(xiàn)在也可以通過插件的方式來實(shí)現(xiàn)配置文件加密了。

1. 配置文件加密

松哥在之前的微服務(wù)視頻中講過,Spring Cloud Config 的對(duì)稱加密和非對(duì)稱加密,加密后的文件格式類似下面這樣:

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

可以看到,在 Spring Cloud Config 中,對(duì)配置文件的加密是針對(duì)字段一個(gè)一個(gè)加密的。

而 Nacos 中的加密,則是對(duì)整個(gè)配置文件的內(nèi)容進(jìn)行加密,這點(diǎn)和 Spring Cloud Config 不同。

Nacos 中是通過 SPI 的機(jī)制抽象出加密和解密的操作,Nacos 默認(rèn)提供 AES 對(duì)稱加密的實(shí)現(xiàn),不過用戶也可以自定義加解密的實(shí)現(xiàn)方式。

在 Nacos 服務(wù)端啟動(dòng)的時(shí)候就會(huì)加載所有依賴的加解密算法,然后通過發(fā)布配置的 dataId 的前綴來進(jìn)行匹配是否需要加解密和使用的加解密算法。

客戶端發(fā)布的配置會(huì)在客戶端通過 filter 完成加解密,也就是配置在傳輸過程中都是密文的,而控制臺(tái)發(fā)布的配置會(huì)在服務(wù)端進(jìn)行處理。

換言之,用了 Nacos 的配置文件加密插件之后,我們?cè)?Nacos 管理頁(yè)面上配置的配置文件,將會(huì)以加密的密文形式存儲(chǔ)在數(shù)據(jù)庫(kù)中,也會(huì)以密文的形式傳輸?shù)娇蛻舳?,然后在客戶端自?dòng)完成解密操作。大致上就是這樣一個(gè)過程。接下來我們就來看看具體的用法。

2. 實(shí)踐

首先我們需要下載 nacos 源碼進(jìn)行編譯,編譯完成之后,需要將之安裝到本地 Maven 倉(cāng)庫(kù)(因?yàn)榫幾g加密插件需要用到 Nacos)。

首先 clone nacos 源碼,如下:

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

下載之后,個(gè)人建議用 IDEA 去編譯,操作方便一些(因?yàn)楹罄m(xù)還有其他操作)。

所以我們先用 IDEA 打開項(xiàng)目,確認(rèn)項(xiàng)目所需依賴均已下載完畢,然后點(diǎn)擊 install 按鈕,將項(xiàng)目編譯安裝到本地倉(cāng)庫(kù):

圖片圖片

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

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

也用 IDEA 打開這個(gè)插件項(xiàng)目。這個(gè)插件編譯要用到我們剛剛編譯安裝好的 Nacos,但是給的版本號(hào)不對(duì),需要我們手動(dòng)修改下,位置在 nacos-plugin/pom.xml,修改里邊 Nacos 的版本號(hào),從 2.2.0-SNAPSHOT 改為 2.2.0-BETA(我剛剛編譯安裝的是這個(gè)版本,大家根據(jù)自己的實(shí)際情況選擇):

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

改完之后也執(zhí)行 install 操作,將所有的插件都安裝到本地倉(cāng)庫(kù):

圖片圖片

接下來回到一開始的 Nacos 項(xiàng)目中,在 Nacos 項(xiàng)目中引入這個(gè)插件的依賴,建議在 config 模塊中引入,如下圖:

圖片圖片

引入內(nèi)容如下:

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

加了這個(gè)依賴之后,我們的 Nacos 就具備了配置文件加密功能了。

現(xiàn)在我再改一下 console/src/main/resources/application.properties 配置文件,讓 Nacos 將數(shù)據(jù)存入到本地?cái)?shù)據(jù)庫(kù)中,如下:

### 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

配置完成后,本地提前準(zhǔn)備好一個(gè)名為 nacos_config 的數(shù)據(jù)庫(kù),并執(zhí)行 distribution/conf/mysql-schema.sql 腳本文件,將所需的表先創(chuàng)建出來。

接下來,為項(xiàng)目添加啟動(dòng)參數(shù),我們以單機(jī)而不是集群的方式來啟動(dòng) Nacos,如下:

圖片圖片

上圖大家重點(diǎn)看兩個(gè)地方,一個(gè)是啟動(dòng)類所處的位置,另外一個(gè)則是啟動(dòng)參數(shù)。

好啦,現(xiàn)在我們就可以像啟動(dòng) Spring Boot 項(xiàng)目那樣啟動(dòng) Nacos 了。

3. 發(fā)布

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

然后,在 IDEA 中,對(duì)我們剛剛處理過的 nacos,重新打包,不過記得打包的時(shí)候設(shè)置一下環(huán)境,如下:

圖片圖片

設(shè)置好環(huán)境之后,然后對(duì)項(xiàng)目重新進(jìn)行打包。打包完成后,生成了新的 nacos-server.jar,如下:

圖片圖片

用這個(gè) jar 包替換掉官方壓縮包中的 jar,然后啟動(dòng) nacos 即可。

4. 訪問

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

例如我現(xiàn)在創(chuàng)建如下配置文件:

圖片圖片

創(chuàng)建完成后,我們?nèi)?shù)據(jù)庫(kù)中看一下這個(gè)配置文件:

圖片圖片

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

現(xiàn)在我們創(chuàng)建一個(gè)項(xiàng)目,來加載這個(gè)加密的配置文件。

創(chuàng)建項(xiàng)目時(shí)候,選擇 Nacos Configuration,如下:

圖片圖片

創(chuàng)建好之后,記得手動(dòng)加上剛剛的那個(gè)加密插件的依賴(解密的時(shí)候會(huì)用到)。

項(xiàng)目名稱記得設(shè)置為 cipher-aes-nacos:

# 應(yīng)用名稱
spring.application.name=cipher-aes-nacos
# 應(yīng)用服務(wù) WEB 訪問端口
server.port=8080

其他都正常配置即可。

責(zé)任編輯:武曉燕 來源: 江南一點(diǎn)雨
相關(guān)推薦

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

2022-02-28 07:37:02

Java配置參數(shù)

2013-07-11 14:50:51

2010-11-09 17:28:27

嗅探嗅探網(wǎng)絡(luò)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配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)