日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Fabric--CA 应用与配置

發(fā)布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Fabric--CA 应用与配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Fabric CA 應用與配置

簡介

Fabric CA項目是超級賬本Fabric內(nèi)的MemberService組件, 對網(wǎng)絡內(nèi)各個實體的身份證書的管理, 主要實現(xiàn):

  • 負責Fabric網(wǎng)絡內(nèi)所有實體(Identity)的身份管理, 包括身份的注冊、注銷等
  • 負責證書管理, 包括ECerts(身份證書)、TCerts(交易證書)等的發(fā)放和注銷
  • 服務端支持基于客戶端命令行的RESTful API的交互方式

Fabric CA采用Go語言進行編寫

基本組件

Fabric CA采用了典型的C/S架構(gòu), 目前包含兩個基本組件, 分別實現(xiàn)服務端功能和客戶端功能

  • 服務端: fabric-ca-server實現(xiàn)核心的PKI(Public Key Infrastructure: 公鑰基礎設施)服務功能, 支持多種數(shù)據(jù)庫后臺(包括SQlite3、MySQL、PostgreSQL等), 并支持集成LDAP用為用戶注冊管理功能
  • 客戶端: fabric-ca-client封裝了服務端的RESTful API, 提供訪問服務端的命令, 供用戶與服務端進行交互

安裝服務端與客戶端

安裝Go1.9+

設置GOPATH環(huán)境變量

安裝libtool 與 libltdl-dev 依賴包

$ sudo apt update $ sudo apt install libtool libltdl-dev

安裝

安裝服務端與客戶端二進制命令到$GOPATH/bin目錄下

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

切換至源碼目錄下:

$ cd $GOPATH/src/github.com/hyperledger/fabric-ca/

使用make命令編譯:

$ make fabric-ca-server $ make fabric-ca-client

生成 bin 目錄, 目錄中包含 fabric-ca-client 與 fabric-ca-server 兩個可執(zhí)行文件

設置環(huán)境變量

$ export PATH=$GOPATH/src/github.com/hyperledger/fabric-ca/bin:$PATH

初始化

返回至用戶目錄

$ cd ~ $ mkdir fabric-ca $ cd fabric-ca

fabric-ca啟動:

1. 使用init進行初始化 2. 使用start啟動

初始化

$ fabric-ca-server init -b admin:pass

生成配置文件到至當前目錄

  • fabric-ca-server-config.yaml: 默認配置文件
  • ca-cert.pem: PEM格式的CA證書文件, 自簽名
  • fabric-ca-server.db: 存放數(shù)據(jù)的sqlite數(shù)據(jù)庫
  • msp/keystore/: 路徑下存放個人身份的私鑰文件(_sk文件), 對應簽名證書

快速啟動

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

$ fabric-ca-server start -b admin:pass

-b: 提供注冊用戶的名稱與密碼, 如果沒有使用LDAP, 這個選項為必需. 默認的配置文件的名稱為fabric-ca-server-config.yaml

如果之前沒有執(zhí)行初始化命令, 則啟動過程中會自動先進行初始化操作. 即從主配置目錄搜索相關證書和配置文件, 如果不存在則會自動生成

RESTful API

在打開的新終端中輸入以下命令獲取指定CA服務的基本信息.

$ curl -X POST -d '{"caname":"test_ca"}' http://localhost:7054/api/v1/cainfo

如要獲取默認CA服務的基本信息, 可以不帶任何參數(shù), 如:

$ curl -X POST http://localhost:7054/api/v1/cainfo

服務端命令剖析

fabric-ca-server命令主要負責啟動一個CA服務, 包括init和start兩個子命令

服務端配置文件解析

fabric-ca-server-config.yaml配置文件包括通用配置, TLS配置, CA配置, 注冊管理配置, 數(shù)據(jù)庫配置, LDAP配置, 組織結(jié)構(gòu)配置, 簽名, 證書申請等幾部分

version: 1.1.1-snapshot-e656889 port: 7054 # 指定服務的監(jiān)聽端口 debug: false # 是否啟用DEBUG模式, 輸出更多的調(diào)試信息上 crlsizelimit: 512000# 是否在服務端啟用TLS,如果啟用TLS后進行身份驗證的證書和簽名的私鑰 tls: enabled: false # 是否啟用TLS, 默認不啟用certfile: # TLS證書文件keyfile: # TLS密鑰文件clientauth: # 客戶端驗證配置type: noclientcert # 默認不進行身份驗證certfiles: # 進行客戶端身份驗證時, 信任的證書文件列表# 包括實例的名稱、簽名私鑰文件、身份驗證證書和證書鏈文件乖;這些私鑰和證書文件會用來作為生成ECert、TCert的根證書 ca: name: # CA服務名稱. 可以支持多個服務keyfile: # 密鑰文件(默認: ca-key.pem)certfile: # 證書文件(默認: ca-cert.pem)chainfile: # 證書鏈文件(默認: chain-cert.pem)crl:expiry: 24h# 當fabric-ca-server自身提供用戶的注冊管理時使用, 此情況下需要禁用LDAP功能, 否則fabric-ca-server將會把注冊管理數(shù)據(jù)轉(zhuǎn)發(fā)到LDAP進行查詢 registry:# 允許同一個用戶名和密碼進行enrollment的最大次數(shù), -1為無限制, 0為不支持登記maxenrollments: -1 identities: # 注冊的實體信息, 可以進行enroll. 只有當LDAP未啟用時起作用- name: adminpass: adminpwtype: clientaffiliation: ""attrs:hf.Registrar.Roles: "peer,orderer,client,user"hf.Registrar.DelegateRoles: "peer,orderer,client,user"hf.Revoker: truehf.IntermediateCA: true # 該id是否是一個中間層的CAhf.GenCRL: truehf.Registrar.Attributes: "*"hf.AffiliationMgr: true# 數(shù)據(jù)庫支持SQLite3、MySQL、Postgres. 默認為SQLite3類型的本地數(shù)據(jù)庫. 如果要配置集群, 則需要選用MySQL或Postgres后端數(shù)據(jù)庫, 并在前端部署負載均衡器(如Nginx或HAProxy) db:type: sqlite3datasource: fabric-ca-server.db # SQLite3文件路徑tls:enabled: false # 是否啟用TLS來連接到數(shù)據(jù)庫certfiles: # PEM格式的數(shù)據(jù)庫服務器的TLS根證書, 可以指定多個, 用逗號隔開client:certfile: # PEM格式的客戶端證書文件keyfile: # PEM格式的客戶端證書私鑰文件# 配置使用遠端的LDAP來進行注冊管理, 認證enrollment的用戶和密碼, 并獲取用戶屬性信息. 此時, 服務端將按照指定的usrfilter從LDAP獲取對應的用戶, 利用其唯一識別名(distinguidhed name)和給定的密碼進行驗證. # 當LDAP功能啟用時, registry中的配置將被忽略 ldap:enabled: false # 是否啟用LDAP, 默認不啟用url: ldap://<adminDN>:<adminPassword>@<host>:<port>/<base> # LDAP的服務地址tls:certfiles: # PEM格式的LDAP服務器的TLS根證書, 可以為多個, 用逗號隔開client:certfile: # PEM格式的客戶端證書文件keyfile: # PEM格式的客戶端證書私鑰文件attribute: names: ['uid','member'] converters:- name:value: maps:groups:- name:value:# 組織結(jié)構(gòu)配置 affiliations:org1:- department1- department2org2:- department1# 簽發(fā)證書相關的配置包括簽名方法、證書超時時間等. fabric-ca-server可以作為用戶證書的簽發(fā)CA(默認情況下), 也可以作為根CA來進一步支持其它中間CA signing:default: # 默認情況下,用于簽署Ecertusage: # 所簽發(fā)證書的KeyUsage extension域- digital signatureexpiry: 8760hprofiles: # 不同的簽發(fā)配置ca: # 簽署中間層CA證書時的配置模板usage:- cert sign # 所簽發(fā)證書的KeyUsage extension域- crl signexpiry: 43800hcaconstraint:isca: truemaxpathlen: 0 # 限制該中間層CA無法進一步簽署中間層CAtls:usage:- signing- key encipherment- server auth- client auth- key agreementexpiry: 8760h# CA自身證書的申請請求配置. 當CA作為根證書服務時, 將基于請求生成一個自簽名的證書; 當CA作為中間證書服務時, 將請求發(fā)送給上層的根證書進行簽署 csr:cn: fabric-ca-server # 建議與服務器名一致names:- C: USST: "North Carolina"L:O: HyperledgerOU: Fabrichosts:- kevin-hf- localhostca: # 配置后會加入到證書的擴展字段expiry: 131400h # 超時時間pathlength: 1 # 允許產(chǎn)生的中間證書的深度# 配置所選擇的加密庫 bccsp:default: SWsw:hash: SHA2security: 256filekeystore:keystore: msp/keystore # 存放密鑰文件的路徑# 自動創(chuàng)建除了默認CA外的多個CA實例, 如ca1、ca2等 cacount:# 可以指定多個CA配置文件路徑, 每個配置文件會啟動一個CA服務,注意不同配置文件之間需要避免出現(xiàn)沖突(如服務端口、TLS證書等) cafiles:# 當CA作為中間層CA服務時的相關配置. 包括父CA的地址和名稱、登記信息、TLS配置等. # 注意: 當intermediate.parentserver.url非空時, 意味著本CA是中間層CA服務,否則為根CA服務 intermediate:parentserver: # 父CA相關信息url:caname:enrollment: # 在父CA側(cè)的登記信息hosts: # 證書主機名列表profile: # 簽發(fā)所用的profilelabel: # HSM操作中的標簽信息tls: # TLS相關配置certfiles: # 信任的根CA證書client: # 客戶端驗證啟用時的相關文件certfile:keyfile:

與服務器端進行交互

可以采用包括RESTful API在內(nèi)的多種方式與Fabric-CA服務端進行交互. 其中最方便的方式是通過客戶端工具 fabric-ca-client

登記用戶

注冊管理員需要以管理員身份使用CA Client連接到CA Server,并生成相應的文件

$ export PATH=$GOPATH/src/github.com/hyperledger/fabric-ca/bin:$PATH $ fabric-ca-client enroll -u http://admin:pass@localhost:7054

如果生成的配置文件不是在當前目錄下, 則運行登記命令后可能會產(chǎn)生如下錯誤

Error: Response from server: Error Code: 20 - Authorization failure 解決方式: 返回至目錄下重新啟動服務 $ cd ~ $ fabric-ca-server start -b admin:pass

-u: 進行連接的fabric-ca-server服務地址, 默認為”http://localhost:7054”

該命令訪問本地Fabric CA服務, 采用默認的admin用戶進行登記. 默認情況下會在用戶目錄下的.fabric-ca-clien子目錄下創(chuàng)建默認的配置文件 fabric-ca-clien-config.yaml 和 msp 子目錄(包括簽發(fā)的證書文件)

可以使用 $ tree .fabric-ca-client/ 命令查看結(jié)構(gòu)

注冊用戶

登記后的用戶身份可以采用如下命令來注冊一個新的用戶:

$ fabric-ca-client register --id.name kevin --id.type user --id.affiliation org1.department1 --id.attrs '"hf.Registrar.Roles=peer,user"' --id.attrs 'hf.Revoker=true'

執(zhí)行后輸出:

2018/05/02 14:39:28 [INFO] Configuration file location: /home/kevin/.fabric-ca-client/fabric-ca-client-config.yaml Password: KDwrXkAFENWW

命令執(zhí)行成功后返回該新注冊用戶的密碼

如果想使用指定的密碼, 在命令中添加選項 –id.secret password 即可

可以再次使用enroll命令,給kevin這個用戶生成msp的私鑰和證書

$ fabric-ca-client enroll -u http://kevin:KDwrXkAFENWW@localhost:7054 -M kevinca

-M: 指定生成證書存放目錄MSP的路徑, 默認為”msp”

命令執(zhí)行成功后會在 .fabric-ca-client 目錄下生成指定的userca目錄, 在此目錄下生成msp的私鑰和證書

可使用tree使用查看

$ tree .fabric-ca-client/

輸出內(nèi)容如下:

.fabric-ca-client/ ├── fabric-ca-client-config.yaml ├── kevinca │ ├── cacerts │ │ └── localhost-7054.pem │ ├── intermediatecerts │ │ └── localhost-7054.pem │ ├── keystore │ │ ├── 8c7e4d893af9b9a5907299097edd69c9adee743f4421f81a2d73ed55a874545e_sk │ │ └── ec63821399143fc422e01596eca622e8c658c0ded8e5c189804180256c40c19e_sk │ └── signcerts │ └── cert.pem ├── msp├── cacerts│ └── localhost-7054.pem├── intermediatecerts│ └── localhost-7054.pem├── keystore│ └── eaa009831dc406950766cc1df104f6fb3ed4b456faa5f476dc41db817a873d2a_sk└── signcerts└── cert.pem

登記節(jié)點

登記Peer或Orderer節(jié)點的操作與登記用戶身份類似. 可以通過-M指定本地MSP的根路徑來在其下存放證書文件

注冊節(jié)點:
$ fabric-ca-client register --id.name peer0 --id.type peer --id.affiliation org1.department1 --id.secret peer0pw
登記節(jié)點
$ fabric-ca-client enroll -u http://peer0:peer0pw@localhost:7054 -M peer0

客戶端命令剖析

fabric-ca-client命令可以與服務端進行交互, 包括五個子命令:

  • enroll: 登錄獲取ECert
  • getcacert: 獲取CA服務的證書鏈
  • reenroll: 再次登錄
  • register: 注冊用戶實體
  • revoke: 吊銷簽發(fā)的實體證書

這些命令都是通過服務端的RESTful接口來進行操作的

enroll命令

向服務端申請簽發(fā)ECert證書并將文件保存至本地

$ fabric-ca-client enroll -u http://admin:pass@localhost:7054

getcacert命令

向服務端申請根證書信息并保存至本地主配置目錄的msp/cacerts路徑下

$ fabric-ca-client getcacert -u http://admin:pass@localhost:7054

證書命名格式為: 服務器主機名-CA實例名.pem

reenroll命令

利用本地配置信息再次執(zhí)行enroll過程, 生成新的簽名證書材料

$ fabric-ca-client reenroll

register命令

執(zhí)行注冊新用戶實體的客戶端必須已經(jīng)通過登記認證, 并且擁有足夠的權(quán)限(所注冊用戶的hf.Registrar.Roles和affiliation都不能超出調(diào)用者屬性)來進行注冊

$ fabric-ca-client register --id.name jack --id.type user --id.affiliation org1.department1 --id.attrs '"hf.Registrar.Roles=peer,user"' --id.attrs 'hf.Revoker=true' --id.secret jackpw

revoke命令

吊銷指定的證書或指定實體相關的所有證書. 執(zhí)行revoke命令的客戶端身份必須擁有足夠的權(quán)限(hf.Revoker為true, 并且被吊銷者機構(gòu)不能超出吊銷者機構(gòu)的范圍)

$ fabric-ca-client revoke -e "jack" -r "affiliationchange"

-e: 指定吊銷用戶

-r: 指定吊銷原因

輸出內(nèi)容如下

2018/05/02 17:55:44 [INFO] Configuration file location: .fabric-ca-client/fabric-ca-client-config.yaml 2018/05/02 17:55:44 [INFO] Sucessfully revoked certificates: []

查看AKI和序列號

AKI: 公鑰標識號, 代表了對該證書進行簽發(fā)機構(gòu)的身份

查看根證書的AKI與序列號信息:

$ openssl x509 -in .fabric-ca-client/msp/signcerts/cert.pem -text -noout

輸出內(nèi)容如下:

Certificate:Data:Version: 3 (0x2)Serial Number: # 序列號74:48:88:33:70:1a:01:a0:ad:32:29:6e:c5:ab:5a:fa:3b:91:25:a4......X509v3 extensions:......X509v3 Authority Key Identifier: # keyid后面的內(nèi)容就是 AKIkeyid:45:B1:50:B6:CD:8A:8D:C5:9B:9E:5F:75:15:47:D6:C0:AD:75:FE:71......

單獨獲取AKI

$ openssl x509 -in .fabric-ca-client/msp/signcerts/cert.pem -text -noout | awk '/keyid/ {gsub (/ *keyid:|:/,"",$1);print tolower($0)}'

輸出內(nèi)容如下:

45b150b6cd8a8dc59b9e5f751547d6c0ad75fe71

單獨獲取序列號

$ openssl x509 -in .fabric-ca-client/msp/signcerts/cert.pem -serial -noout | cut -d "=" -f 2

輸出內(nèi)容如下:

74488833701A01A0AD32296EC5AB5AFA3B9125A4 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Fabric--CA 应用与配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲经典久久 | 国产男女猛烈无遮挡免费视频 | 一级免费黄色片 | 久久亚洲网站 | 亚州激情视频 | 全程粗话对白视频videos | 女性高潮视频 | 日韩爱爱免费视频 | 欧美在线性爱视频 | 色图在线观看 | 少妇又紧又深又湿又爽视频 | 成人在线小视频 | 亚洲经典自拍 | 69视频网址 | 日韩欧美一 | 高清国产午夜精品久久久久久 | 国模吧无码一区二区三区 | 老女人综合网 | 久久精品h| 国产一区二区自拍 | 免费看欧美一级特黄a大片 国产免费的av | 99热6这里只有精品 三级av在线免费观看 | 亚洲精品第三页 | 黄色女女 | 天天爽夜夜爽一区二区三区 | 超碰97在线看 | 国产一级二级在线 | 久久久激情网 | 在线黄色大片 | 男女午夜免费视频 | 久久精品免费在线 | 三日本三级少妇三级99 | 中文字幕+乱码+中文 | 亚洲毛片a | 亚洲最大成人在线 | 中文字幕亚洲一区二区三区五十路 | 999热视频 | 亚洲男人的天堂在线视频 | 黄色一级片黄色一级片 | 中文字幕无码乱码人妻日韩精品 | 国产精品免费一区二区三区都可以 | 在线国产精品视频 | 黄视频在线 | 男生插女生视频在线观看 | av手机天堂网| 深夜国产福利 | 亚洲天堂中文字幕 | 欧美美女一区二区 | 91激情视频在线观看 | 国产精品久久久久久久久久久久久久 | 亚洲国产精品无码专区 | 三级黄色网 | 毛片在线网站 | 天天色官网 | 丰满岳跪趴高撅肥臀尤物在线观看 | 日本xxxxwwwww | 国产精品二三区 | 亚洲精品美女久久久 | 亚洲一区二区精品 | 日韩毛片视频 | 麻豆传媒视频入口 | 国产综合日韩 | 少妇无码av无码专区在线观看 | 国产乱人乱偷精品视频a人人澡 | 黑人玩弄人妻一区二 | 91caob| 97色爱 | 色香蕉在线| 欧美日韩色图片 | 成人不卡在线 | 国内久久久 | 第一av | 日批视频免费看 | 成人精品三级av在线看 | 99青青草 | 国产v综合v亚洲欧美久久 | 视频污在线观看 | 国产精品12页 | 精品国产视频一区二区三区 | 一区二区在线不卡 | 国产日韩在线播放 | 亚洲男人天堂影院 | 日韩精品极品视频免费观看 | 欧美极品少妇xxxxⅹ免费视频 | 欧美黄色性视频 | 国产网站在线看 | 欧美黄在线 | 污视频免费在线观看网站 | 国产富婆一区二区三区 | 俺去草 | 精品久久91 | 国产xxxx | 色综合色综合 | 国产精品成人电影在线观看 | 亚洲人妻电影一区 | 日本特黄特黄刺激大片 | 欧美日韩精品网站 | 蜜臀视频在线播放 | 五月婷婷婷婷 |