Fabric CA 配置與應用

王一洋發表於2019-03-23

 

通過命令列安裝faric-ca,下載原始碼並編譯:

go get -u github.com/hyperledger/fabric-ca/cmd/fabric-ca-server
go get -u github.com/hyperledger/fabric-ca/cmd/fabric-ca-client

go get命令會自動獲取原始碼並編譯至$GOPATH/bin,我的目錄是~/go/bin,目錄下出現編譯好的二進位制可執行檔案fabric-ca-serverfabric-ca-client

2、配置環境變數

$ export PATH=/opt/gopath/bin:$PATH
$ source /etc/profile

接著進入bin目錄對CA服務端進行初始化:

fabric-ca-server init -b admin:adminpw 

初始化後在目錄下生成

  • msp :包含keystore,CA伺服器的私鑰
  • ca-cert.pem :CA服務端的證書
  • fabric-ca-server.db :CA預設使用的嵌入型資料庫 SQLite
  • fabric-ca-server-config.yaml :CA服務端的配置檔案
     

接著啟動CA伺服器

fabric-ca-server start -b admin:adminpw

CA server開始監聽,預設監聽地址為http://0.0.0.0:7054。如果直接執行start命令則會自動先進行初始化init然後啟動服務開始監聽。配置環境變數:

export FABRIC_CA_CLIENT_HOME=$HOME/svr/client

根據使用者名稱、密碼登記(enroll)admin使用者,登記完成後,admin使用者才可以登記(enroll)user

fabric-ca-client enroll -u http://admin:adminpw@localhost:7054
[yzapps@00VMDL-FabricCa-172-19-101-64 client]$fabric-ca-client enroll -u http://admin:adminpw@localhost:7054
2019/03/23 15:33:26 [INFO] Created a default configuration file at /home/yzapps/svr/client/fabric-ca-client-config.yaml
2019/03/23 15:33:26 [INFO] generating key: &{A:ecdsa S:256}
2019/03/23 15:33:26 [INFO] encoded CSR
2019/03/23 15:33:26 [INFO] Stored client certificate at /home/yzapps/svr/client/msp/signcerts/cert.pem
2019/03/23 15:33:26 [INFO] Stored root CA certificate at /home/yzapps/svr/client/msp/cacerts/localhost-7054.pem
2019/03/23 15:33:26 [INFO] Stored Issuer public key at /home/yzapps/svr/client/msp/IssuerPublicKey
2019/03/23 15:33:26 [INFO] Stored Issuer revocation public key at /home/yzapps/svr/client/msp/IssuerRevocationPublicKey

執行命令後,會在指定的目錄 $FABRIC_CA_CLIENT_HOME 下fabric-ca-client-config.yaml檔案和msp目錄。包含管理員的證書和私鑰。

有了已經enroll成功的admin使用者,接下來將admin作為登記員(Registrar)來登記(register)一個新使用者(User)。

fabric-ca-client register --id.name Jim --id.type user --id.affiliation org1.department1 --id.attrs 'hf.Revoker=true,foo=bar'

登記後的使用者身份可以採用如下命令來註冊一個新的使用者Jim:

[yzapps@00VMTL-FabricPeer-172-19-102-61 svr]$ fabric-ca-client register --id.name Jim --id.type user --id.affiliation org1.department1 --id.attrs 'hf.Revoker=true,foo=bar'
2019/03/23 16:05:33 [INFO] Configuration file location: /home/yzapps/svr/client/fabric-ca-client-config.yaml
Password: BXcamKtRAiCV

客戶端可以接收到一個密碼(BXcamKtRAiCV),用這個註冊密碼來註冊(enroll)使用者:

fabric-ca-client enroll -u http://Jim:BXcamKtRAiCV@localhost:7054 -M $FABRIC_CA_CLIENT_HOME/Jim

這樣一個新使用者就註冊成功了,獲取了屬於自己的證書和私鑰。

 

相關文章