Spring cloud config 配置檔案加密
阿新 • • 發佈:2019-02-15
前言
我們會使用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=