fabric ca在整個證書管理環節中處於十分核心的位置。在生產環境中部署時,必須從多個方面進行考慮,以充分確保安全性、可靠性、規範性等指標。
1.根證書的生成
根證書目前可以通過從權威機構(包括golbalsign、verisign)申請,或採用自行簽名的方式生成。技術上來講,兩者都可以完成部署過程,並且都能保證同樣的安全。但不同場景下兩者各有利弊,總結如表11-12所示。
表11-12 權威機構頒發與自行簽名比較
因此,如果應用場景不僅包括私有網路,而且需要可靠的證書機制,推薦採用權威機構頒發的根證書;如果僅面向私有網路場景,並且技術團隊有較豐富的證書管理經驗,則可以採用自行簽名的方法進行部署。
2.分層部署結構
在實際部署中,pki推薦採用分層的結構,即不由根ca來直接簽發證書,而是通過由根ca簽發的中間ca甚至更下層ca(統稱為intermediate ca),來實現對伺服器實體和使用者證書的管理,fabric ca很好地支援了該功能。分層ca如圖11-1所示。
圖11-1 分層ca部署
之所以採用分層結構,是因為ca頒發證書的過程都需要ca的私鑰進行簽名,而一旦ca私鑰發生洩露或所頒發證書被破壞,則該ca的信任性就遭到了破壞,需要對該ca以及依賴它的所有安全機制進行重建(可以想象,更換乙個根ca(root ca)將帶來大量變更和挑戰)。
因此,通過分層結構,可以隔離破壞的風險,即便發生私鑰洩露,也只是影響到某個中間ca。並且,該ca一旦出現問題,其自身的證書很容易被上層ca撤銷。同時,採用分層結構的情況下,根證書私鑰可以處於離線狀態,進行最強等級的保護(如採用基於硬體的機制),以保障安全。
3.tls機制
fabric ca採用了證書來識別網路中的身份,並進一步進行許可權管控。tls證書則從另乙個維度來保護網路中的通訊。
tls證書在通訊雙方建立安全連線時,同樣採用了證書機制來進行身份識別。最常見的情況是服務端啟用tls機制。這種情 況下客戶端會事先獲取服務端的證書,並請求服務端傳送帶有簽名的訊息,用可信的服務端證書進行認證。反過來,也可以對客戶端進行tls認證,這樣就確保連 接到服務端的使用者都是預先許可的使用者。
需要注意的是,fabric中的證書和tls證書是兩個層面:前者進行網路中的身份管理;後者確保安全連線。為了達到更安全的級別,建議同時啟用這兩種機制。
4.負載均衡和高可用
由於fabricca的服務端是典型的提供restful請求的web服務,因此很容易採用傳統web伺服器進行擴充套件的方式來實現負載均衡和高可用,包括開源的nginx、haproxy或商用的f5等。
這裡給出基於haproxy 1.7.0+的配置例子,負載均衡到四個本地fabric-ca服務上。
新建乙個配置檔案haproxy.cfg,內容為:
global # 全域性屬性daemon # 是否在後台執行
maxconn 4096 # 最大支援的併發連線數
defaults # 預設的引數,對其他段都起作用
mode tcp # tcp**模式,也可以為http模式
timeout connect 5000ms # 連線到後端server的超時
timeout client 15000ms # 來自客戶端的超時時間
timeout server 15000ms # 後端伺服器的超時時間
frontend http-in # 前端服務http-in,接收來自客戶端的請求
bind *:7054 # 監聽在對外的7054埠
default_backend fabric-ca # **的後端服務名稱
backend fabric-ca # 後端服務,**的目標,一共四個服務
balance roundrobin
server server1 127.0.0.1:8001 maxconn 1024
server server2 127.0.0.1:8002 maxconn 1024
server server3 127.0.0.1:8003 maxconn 1024
server server4 127.0.0.1:8004 maxconn 1024
啟動四個fabric-ca-server服務,分別監聽到本地的8001、8002、8003、8004埠上。後端都連線到同乙個資料庫集群,因此資料庫也需要支援高可用。
之後採用如下命令啟動haproxy服務即可:
$ haproxy -f haproxy.cfg本章小結
本章具體講解了fabric ca專案提供的諸多功能,包括如何安裝、配置,以及使用它來滿足管控fabric網路中身份證書的諸多需求。
基於cfssl開源元件,fabric ca專案提供了使用者的註冊、證書的分發和撤銷等核心功能,並且支援分層的部署模型、tls、負載均衡等特性,方便滿足不同的複雜應用場景。
實際上,fabric ca專案遵循了pki體系。因此,在部署和使用pki過程中的最佳實踐可以很好地應用到fabric ca專案中以確保安全。當然,作為一套處於核心位置的安全系統,除了技術上要盡量規避漏洞以外,在規章制度、操作流程上更要進行嚴格規定和充分的實踐檢 驗。
'); (window.slotbydup = window.slotbydup || ).push(); })();
'); (window.slotbydup = window.slotbydup || ).push(); })();
問題3 生產環境中的 redis 是怎麼部署的?
生產環境中的 redis 是怎麼部署的?分析 看看你了解不了解你們公司的 redis 生產集群的部署架構,如果你不了解,那麼確實你就很失職了,你的 redis 是主從架構?集群架構?用了哪種集群方案?有沒有做高可用保證?有沒有開啟持久化機制確保可以進行資料恢復?線上 redis 給幾個 g 的記憶體...
Jzoj3169 生產汽車
如前面提到,abc的汽車工廠有n個工人,他們在乙個傳送帶上生產汽車,工人從左到右排列,編號依次為1到n,採用流水線模式,每個人負責自己的一部分工作。生產一台汽車需要從1號工人開始,當1號完成他的工作後,2號就會開始工作,然後是3號,最後當n號工人完成他的工作後,整個汽車生產完畢。工人們一共需要生產m...
2018 9 28 生產問題備註回憶
生產問題總結 表現 1 應用伺服器掛了2臺,資料庫服務記憶體突然公升高 2 資料庫資料許可權表查詢超時 原因 大批量的人為匯入excel同時操作,1 匯入前會檢驗使用者許可權,預設載入在快取裡,但此時redis快取沒有起作用,導致大量請求直接查詢資料庫,造成超時。2 檢驗後,計算實時資料時,取預留比...