1. 程式人生 > >ChainDesk:如何啟動Fabric CA

ChainDesk:如何啟動Fabric CA

作者:ChainDesk韓小東

本篇文章閱讀時間:3.5分鐘

目標

1.認識 Fabric CA 伺服器端主目錄路徑

2.啟動 Fabric CA 的方式

任務實現

6.3.1 初始化

Fabric CA 伺服器的主目錄確定如下:

如果設定了-home 命令列選項,則使用其值

否則,如果FABRIC_CA_SERVER_HOME設定了環境變數,則使用其值

否則,如果FABRIC_CA_HOME設定了環境變數,則使用其值

否則,如果CA_CFG_PATH 設定了環境變數,則使用其值

否則,使用當前工作目錄作為伺服器端的主目錄.

現在我們使用一個當前所在的目錄作為伺服器端的主目錄。返回至使用者的HOME目錄下,建立一個 fabric-ca 目錄並進入該目錄

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

6.3.2 快速啟動

快速啟動並初始化一個 fabric-ca-server 服務

6.3.3 配置資料庫

Fabric CA 預設資料庫為SQLite,預設資料庫檔案fabric-ca-server.db位於 Fabric CA 伺服器的主目錄中。SQLite 是一個嵌入式的小型的資料系統,但在一些特定的情況下,我們需要叢集來支援,所以Fabric CA 也設計了支援其它的資料庫系統(目前只支援 MySQL、PostgreSQL 兩種)。Fabric CA 在叢集設定中支援以下資料庫版本:

PostgreSQL:9.5.5 或更高版本

MySQL:5.7 或更高版本

下面我們來看如何配置來實現對不同資料庫的支援。

6.3.3.1 配置 PostgreSQL

如果使用 PostgreSQL 資料庫,則需要在 Fabric CA 伺服器端的配置檔案進行如下設定:

certfiles:PEM 編碼的受信任根證書檔案列表。

certfilekeyfile:Fabric CA 伺服器用於與 PostgreSQL 伺服器安全通訊的 PEM 編碼證書和金鑰檔案。用於伺服器與資料庫之間的 TLS 連線。

關於生成自簽名證書可參考官方說明:https://www.postgresql.org/docs/9.5/static/ssl-tcp.html,需要注意的是,自簽名證書僅用於測試目的,不應在生產環境中使用。

有關在PostgreSQL伺服器上配置SSL的更多詳細資訊,請參閱以下PostgreSQL文件:https://www.postgresql.org/docs/9.4/static/libpq-ssl.html

6.3.3.2 配置 MySQL

如果使用 MySQL 資料庫,則需要在 Fabric CA 伺服器端的配置檔案進行如下設定:

區塊鏈技術QQ交流群:263270946 掌握更多技術乾貨,關注微信公眾號“ChainDesk”

如果通過 TLS 連線到 MySQL 伺服器,則還需要配置 db.tls.client 部分。如 PostgreSQL 的部分所述。

mySQL 資料庫名稱中允許使用字元限制。請參考:

https://dev.mysql.com/doc/refman/5.7/en/identifiers.html

關於 MySQL 可用的不同模式,請參閱:https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html,為正在使用的特定MySQL版本選擇適當的設定。

6.3.4 配置LDAP

LDAP(Lightweight Directory Access Protocol):輕量目錄訪問協議。

Fabric CA伺服器可以通過伺服器端的配置連線到指定LDAP伺服器。之後可以執行以下操作:

在註冊之前讀取資訊進行驗證

對用於授權的標識屬性值進行驗證

修改 Fabric CA 伺服器的配置檔案中的LDAP部分:

配置資訊中各部分解釋如下:

scheme:為 ldap 或 ldaps;

adminDN:是admin使用者的唯一名稱;

adminPassword:是admin使用者的密碼;

host:是LDAP伺服器的主機名或IP地址;

port:是可選的埠號,預設 LDAP 為 389 ; LDAPS 為 636 ;

base:用於搜尋的LDAP樹的可選根路徑;

filter:將登入使用者名稱轉換為可分辨名稱時使用的過濾器;

LDAPAttrs:是一個LDAP屬性名稱陣列,代表使用者從LDAP伺服器請求;

attribute.converters:部分用於將LDAP屬性轉換為結構CA屬性,其中fcaAttrName是結構CA屬性的名稱; fcaExpr 是一個表示式。例如,假設是[“uid”],是'hf.Revoker',而是'attr(“uid”)=〜“revoker *”'。這意味著代表使用者從LDAP伺服器請求名為“uid”的屬性。如果使用者的'uid'LDAP屬性的值以 revoker 開頭,則為 hf.Revoker 屬性賦予使用者 true 的值;否則,為 hf.Revoker 屬性賦予使用者 false 的值。

attribute.maps:部分用於對映LDAP響應值。典型的用例是將與LDAP組關聯的可分辨名稱對映到標識型別。

配置好 LDAP 後,使用者註冊的過程如下:

Fabric CA 客戶端或客戶端 SDK 使用基本授權標頭髮送註冊請求。

2.Fabric CA 伺服器接收註冊請求,解碼授權頭中的身份名稱和密碼,使用配置檔案中的 “userfilter” 查詢與身份名稱關聯的 DN(專有名稱),然後嘗試 LDAP 繫結使用者身份的密碼。如果 LDAP 繫結成功,則註冊被通過。

FAQ

1.在實際中 Fabric CA 的身份資訊儲存在什麼地方?

可根據具體需求選擇 Fabric CA 支援的資料庫,一般應用選擇 SQLite 即可。中、大型應用選擇 MySQL 或 PostgreSQL 或 LDAP

未經授權禁止轉載、改編,轉載請註明出處!

本文地址: https://www.chaindesk.cn/witbook/11/136

ChainDesk——全球區塊鏈技術生態超級社群

以區塊鏈技術為入口,搭建全球區塊鏈技術生態超級社群,社群將服務於公鏈生態建設、DAPP專案研發、技術諮詢、課程體系研發、區塊鏈書籍編寫,區塊鏈課程製作、講師培訓、區塊鏈職業教育、區塊鏈線上教育、去中心化技術評測一體化的區塊鏈技術超級社群。

免費·原創·專業·高效·系統