1. 程式人生 > >Spring cloud config 配置檔案加密

Spring cloud config 配置檔案加密

前言

我們會使用git來儲存我們專案的配置檔案,但是檔案中總有一些敏感資料,對於這些敏感資料我們通常需要給它加密,加密通常有兩種加密方式,一種是對稱加密,一種是非對稱加密,對稱加密簡單方便,但是安全性沒有非對稱加密高,非對稱加密需要生成證書,安全性比較高。但是請記住沒有絕對的安全。

配置環境

java8 jce


安裝方式:可以參考裡面的README,其實也很簡單:把jdk下面 /jre/lib/security 目錄下面的兩個jar替換了。

Config Server 配置

對稱加密配置測試

在application.yml 中配置

encrypt:
    key:'***這裡寫金鑰***'

測試 post
加密:
curl http://localhsot:8080/enrypt -d mysercet
結果會出來一長串 fdasfa2341sdfa134214….
解密:
curl http://localhost:8080/decrypt -d fdasfa2341sdfa134214….
結果會出來 mysercet

可以使用postman測試

非對稱加密測試

需要先生成證書

cmd下執行命令

keytool -genkeypair -alias mytestkey -keyalg RSA -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US"
-keypass changeme -keystroe server.jks -storepass letmein

將server.jks 檔案複製到專案下的classpath

config server 配置

在 applicaction.yml中配置

encrypt:
  key-store:
    location: server.jks
    password: letmein
    alias: mytestkey
    secret: changeme

測試 post
加密:
curl http://localhsot:8080/enrypt -d mysercet
結果會出來一長串 fdasfa2341sdfa1,34214fdafd2341=….
解密:
curl

http://localhost:8080/decrypt -d fdasfa2341sdfa1,34214fdafd2341=….
結果會出來 mysercet

可以使用postman測試

儲存加密內容

使用{cipher}密文的形式儲存

#spring.datasource.password={cipher}3b6e65af8c10d2766dba099a590496a18cfd816ef9190c983bb56249595ae3f0
spring.datasource.password={cipher}AQCActlsAycDFYRsGHzZ8Jw2S6GO9oeqJSCcm//HenrqiuO7zSo3/vg9BeXL8xwiyIXtKcp2JN8hnrM4NTyyJDIjxhcCbJMjuGrrFJ2FdO5oJWmksymkP5EOXE6MjgxVqHh/tc+06TMBQj2xqEcfCO3jBDPxcR88Ci+VXe63xDIVgvAV9IYmCxlfXOCH31bBlK7j5FXJ8pPLUKgXwaDGzaA5QfqMCGduOfC0AQ+iA0QEW7SdDnwChLNwCHEBfQceWAE7qt6zasiRFZeZt+waOp8rI1u+4CYcTjnV1iSdXwN5j1lhcsoiIpViNx8kbsxhcmpCzdg3bGrS1e/Pzq8CjHmV7IRRS9BfgR6K7wuyjue4SO2ZUtMbZAE5V2NHb3XsqeY=