Hyperledger Fabric 核心模块Fabric-ca-server

Posted thefist11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hyperledger Fabric 核心模块Fabric-ca-server相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

1. Fabric-ca 的编译和安装

2 fabric-ca-server的启动和配置

fab ric - ca- server 启动之后是 以守护进程方式存在,可以通过 fabric - ca- client 或者实现其通信协议的客户端发起请求 。 fabric-ca-serve 有三种方式设置配置信息,分别是启动参数 、环境变量和配置文件 。
2.1. fabric-ca-server的命令行选项

fabric - ca- server 模块有三个子命令,这三个子命令分别是:
• init :初始化 fabric -ca 服务器 。
• start : 启动 fabric -ca 服务器 。
• version : 显示版本 。

2.1.1. fabric-ca-server 的选项

fabric-ca- server的子命令没有各 自 独有的命令行选项,所有的子命令共用一组通用的全局选项,这些选项及其作用如下所示:
• --address: Fabric-ca 服务器的监听地址 (默认为“ 0.0.0.。”) 。
• -b, 一boot :系统启动对应的管理员账号和密码 。
• --ca.certfile: CA 证书文件( 默认为“ ca-cert. pem ” )

–ca.chainfi le: CA 链证书文件(默认为“ ca-chain.pem ”) 。
• --ca.keyfile: CA 密钥文件(默认为“ ca-key.pem ”) 。
• -n, 一ca.name : 证书颁发机构名称 。
• --cacount: CA 实例的数量 。
• --cafiles : 以逗号分隔的 CA 配置文件的列表 。
. 一 crl.expi叩: CRL 请求到期时间(默认为 24h ) 。
• --crlsizelimit :可接受的 CRL 的大小限制,以字节为单位(默认为 512000 ) 。
·…csr.cn :请求父 Fabric-ca 服务器的证书签名时使用的公用名称 。
• --csr.hosts : 逗号分隔的父类 Fabri c-ca 服务器的主机名 ,支持多个 。
• - -csr.serialnumber :请求父类 Fabric -ca 服务器的序列号 。
·…db . datasource : 数据库的名称(默认为“ fabric-ca-serv巳r.db ”),仅仅针对 一db.type
选项为 sqlite3 时有效 。
• - -db . tls.certfiles :和数据库 TLS 通信时用的证书 文件, PME 格式(例如 rootl.pem,
root2.pem ) 。
• --db .tls .client.certfi le :和数据库进行 TLS 通信时客户端的证书文件, PME 格式 。
• --db . tls.client.keyfi le : 和数据库进行 TLS 通信时客户端的私钥文件, PME 格式 。
·…db.type : 存储账号类型的数据库的类型;目前支持三种数据库类型 ,包括 sqlite3 、
postgres 、 mysql (默认为“ sqlite 3 ” ) 。
• -d, 一debug : 启用调试级别日志记录 。
• -H, 斗1ome: Fabric-ca 服务器的主目录(默认为当前目录) 。
.一intermediate.enro llment.label : 操作中使用的标签 。
·一intermediate.enrollment.profi l e :发行证书时要使用的签名配置文件的名称 。
.一intermediate.parentserver. caname :服务器 CA 名称 。
• -u,一intermediate.parentserver.url : 父 Fabric-ca 服务器的 URL 。
• – ldap .enabled : 启用 LDAP 服务进行客户端身份验证和相关属性的管理 。
• --ldap.groupfilter: LDAP 进行组过滤模式,默认值为( memberUid=o/os ) 。
·一ldap .tls.certfiles : LDAP 服务器的证书文件, PEM 格式(例如 rootl .pem, root2.
pem ) 。
• --ldap.tls.client.certfile: LDAP 服务客户端的证书文件, PEM 格式 。
• --ldap.tls.client.keyfile : LDAP 服务的客户端私钥文件, PEM 格式 。
• --ldap.url: LDAP 服务的 URL 。
·…ldap.userfilter : LDAP 服务器的用户过滤器,默认为( uid =o/o s ) 。
• -p, --port : Fabric-ca 服务器监昕端口(默认值为 7054 )
–registry.maxenrollments : 最大允许注册的用户数 ;如果 LDAP 未启用时有效(默认
为一 I ) 。
• --tls.certfile: Fabric-ca 服务器的证书, PEM 格式(默认“ tis-cert. pem ” ) 。
• --tls.clientauth.certfiles : Fabric-ca 服务器的客户端证书(例如 rootl.pem, root2.
pem ) 。
• --tls.clientauth.type : 客户端类型(默认为 “ noclientcert ”) 。
·一tis.enabled :在监昕端口 上启 用 TLS

2. 2 fabric-ca-server的启动和配置

a. 执行 fabric-caserver 的命令 init ,可以初始化生成相关的配置文件 。
fabr i C-ca-server init -b admin:adminpw
在执行 in it 命令之前需要创 建相关的文件夹
b. 配置文件列表 :
• fabric-ca- server-config.yaml :配置文件 。
• fabric-ca-server.db : 数据库文件 (数据库选择 sqlite3 时有效)。
• ca-cert.pem :证书文件。
• msp :私钥文件夹

c. 配置文件说明

  • 通用配置部分
    通用配置部分包含了系统一些公用属性, 比如端口、运行模式等

  • tis 部分主要包含了 TLS 通信相关的配置,包括是否需要打开 TLS 通信, TLS 通信的证
    书和私钥等文件的路径等

  • ca 服务器属性的配置,包含发布证书的组织机构 的名称和相关的证书文件路径等 ,具
    体配置信息如下所示

  • registry 节点包含了客户端注册相关的信息

  • db 部分包含了 Fabric-ca 服务器存储账号文件的数据类型的配置, Fabric-ca 服务器目 前
    支持 sqlite3 、 postgres 和 mysql 三种数据库,选择任何一种数据库在启动 Fabric-ca 服务器之
    前都需要安装, Fabric-ca 本身不会自动安装这些数据库引擎
    eg.
    选择 mysql 存储账号:
    db:type : mysqldatasource : root :rootpw@tcp(localhost : 3306)/fabric ca?parseTime=true&tls=custom

  • Fabric-ca 可以配置使用远端 LDAP 服务器来进行注册管理并且保存注册相关的数据, LDAP
    服务相关的配置信息包含在 ldap 节点

  • affiliations 节点包含了组织中的部门的相关配置信息,这些配置信息在客户端 SDK 调
    用时相关的参数必须保持一致 。

  • signing 节点包含了证书签发相关的配置, 包括证书的到期时间 等属 性

  • csr 节点包含了证书申请请求时 需要 使用的配 置信息 。 如果当前 CA 服务器是作为根
    CA 服务器存在的,那么需要设置这些属性

  • bccsp 节点包含 了加密算法相关 的配置 ,在 bccsp 节点中可以选择相关的加密算法以及
    相关加密算法的证书文件

  • intermediate
    当前 CA 作为中间层时相关的配置 。 如果当前 CA 服务器需要从上级 CA 服务器获取授
    权才能工作,需要配置 intermediate 节点的相关属性

2. 3 fabric-ca-server 的启动

配置文件设置好之后就可以启动 fabric-ca-server 服务器

fabric-ca-server start -H / opt/hyperledger/fabric-ca --boot admin :adminpw

以上是关于Hyperledger Fabric 核心模块Fabric-ca-server的主要内容,如果未能解决你的问题,请参考以下文章

Hyperledger Fabric 核心模块configtxgen工具

Hyperledger Fabric 核心模块Fabric-ca-server

Hyperledger Fabric 核心模块Fabric-ca-client

Hyperledger Fabric 核心模块orderer 共识

Hyperledger Fabric 核心模块configtxlator工具

Hyperledger Fabric 核心模块cryptogen 工具