springcloud(四):應用配置中心config的安全設置


springcloud應用配置中心config的安全設置

在springcloud應用開發中,為了方便在線管理我們的配置文件,通常會配一個配置中心config-server,這里托管着應用的一些配置文件,這些配置文件中配置着我們很多的賬號信息:如mysql、redis、mongodb、rabbitmq等等的賬號和密碼。牽扯到賬號信息,想必我們要保證如何保證其安全性。

1.保證容器文件訪問的安全性,即保證所有的網絡資源請求都需要登錄

通過springboot配置屬性之security,配置security.user.name和security.user.password可以初步達到安全訪問的效果。具體配置:在application.yml中配置如下:

 
springboot配置屬性之security
加上下面的比較好:
security:
  basic:
    enabled: true

在pom依賴中增加

 
security依賴

重啟config-server后,再通過url訪問文件資源時,會出現

 
security安全登錄頁面
***:如果是直接調用url,那么需要在url里面加上參數,加在Headers里面,Authorization:Basic *************=
*********是經過base64對用戶名密碼加密之后得到的,獲取它可以在上面的安全登錄頁面登入之后,F12打開,查找request headers里面。或者用postman測試工具輸入用戶名密碼,去Headers查看。

2.將配置中心里所有配置文件中的密碼進行加密,保證其密文性

springcloud的配置服務中心具有decrypt/encrypt功能,可以將原文加密成密文,也可以將密文解密成原文。其工作原理是,首先將密碼等原文通過開發者設置的key和springcloud中的encrypt加密成密文,用密文替代配置文件中心的原文密碼;項目啟動加載配置中心時,會自動將密文解密成原文並加載到spring的上下文中(spring上下文中緩存的是原文而不是密文)。具體操作步驟如下

a.首先去http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html將文件下載並解壓,可以看到local_policy.jar和US_export_policy.jar以及readme.txt,如果安裝了jre,將兩個jar文件放到%JRE_HOME%\lib\security文件目錄下,如果安裝了jdk,也將兩個jar文件放到%JDK_HOME%\jre\lib\security文件目錄下。(jdk8環境)

b.設置加密密鑰,在config-server的微服務中的application.yml文件中配置security.key=your key

 

 
配置密鑰

c.重啟配置中心服務,會發現

 
security策略加密/解密方法發現

d.將密碼原文加密

 

 
通過postman工具加密

e.將加密后的密文復制,加上{cipher}標識,編輯在配置文件中(標識符和密文中間不能有任何字符,包括空格)

 

 
編輯配置文件

搞定后,我們的配置文件里所有的密碼都是密文,即使將配置文件托管在GitHub上,別人看到也無法得知原文密碼是什么。



轉自:https://www.jianshu.com/p/93592860993d


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM