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

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

在springcloud應用開發中,爲了方便在線管理咱們的配置文件,一般會配一個配置中心config-server,這裏託管着應用的一些配置文件,這些配置文件中配置着咱們不少的帳號信息:如mysql、redis、mongodb、rabbitmq等等的帳號和密碼。牽扯到帳號信息,想必咱們要保證如何保證其安全性。html

1.保證容器文件訪問的安全性,即保證全部的網絡資源請求都須要登陸java

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

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

在pom依賴中增長redis

 
security依賴

重啓config-server後,再經過url訪問文件資源時,會出現spring

 
security安全登陸頁面
***:若是是直接調用url,那麼須要在url裏面加上參數,加在Headers裏面,Authorization:Basic *************=
*********是通過base64對用戶名密碼加密以後獲得的,獲取它能夠在上面的安全登陸頁面登入以後,F12打開,查找request headers裏面。或者用postman測試工具輸入用戶名密碼,去Headers查看。

2.將配置中內心全部配置文件中的密碼進行加密,保證其密文性sql

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

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.重啓配置中心服務,會發現springboot

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

d.將密碼原文加密

 

 
經過postman工具加密

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

 

 
編輯配置文件

搞定後,咱們的配置文件裏全部的密碼都是密文,即便將配置文件託管在GitHub上,別人看到也沒法得知原文密碼是什麼。

轉自:https://www.jianshu.com/p/93592860993d
相關文章
相關標籤/搜索