本文章所有操作基于的操作系统版本是:ubuntu16.04 64位
本文章基于的Fabric网络环境是《Fabric实战(2)运行一个简单的fabric网络(容器外)》
1 Fabric-ca的编译和安装
第一步:安装依赖
sudo apt-get install libtool libltdl-dev
第二步:下载源代码并编译
cd $GOPATH/src/github.com/hyperledger/
git clone http://gerrit.hyperledger.org/r/fabric-ca
cd fabric-ca/
#编译server和client
make fabric-ca-server
make fabric-ca-client
第三步:安装编译号的可执行文件
sudo cp ~/go/src/github.com/hyperledger/fabric-ca/bin/* /usr/local/bin/
第四步:验证是否安装成功
fabric-ca-server version
fabric-ca-client version
2 Fabric-ca-server
fabric-ca-server启动之后是以守护进程的方式存在,可以通过fabric-ca-client或者其他实现了通信协议的客户端发起。faric-ca-server有三种方式设置配置信息,分别是启动参数、环境变量、配置文件
2.1 Fabric-ca-server命令行选项和说明
2.1.1 Fabric-ca-server子命令
fabric-ca-server模块有三个子命令,分别是:
- init: 初始化fabric-ca服务器
- start: 启动fabric-ca 服务器
- version: 显示版本
2.2 Fabric-ca-server初始化
fabric-ca-server可以通过配置文件进行参数设置。执行fabric-ca-server的子命令init,可以初始化生成相关的配置文件。在执行init命令之前需要创建相关的文件夹,本教程创建如下文件夹(实际可随意指定文件夹路径):
mkdir -p ~/fabric-ws/fabric-ca-server
ca服务器初始化:
cd ~/fabric-ws/fabric-ca-server
fabric-ca-server init -b admin:adminpw
-b参数后面的是fabric-ca-server服务器的管理账号的用户名和密码,相当于设定ca服务器的管理员账号的用户名和密码,这里给出就是一个例子,生产环境请使用复杂的密码。
fabric-ca-server初始化命令执行之后,会在当前目录下生成相应的配置文件,这些文件的名字和作用如下:
- fabric-ca-server-config.yaml:配置文件
- fabric-ca-server.db:数据库文件(数据库选择sqlite3时有效)
- ca-cert.pem:证书文件
- msp:私钥文件夹
2.3 Fabric-ca-server启动
编辑好配置文件之后,启动命令如下:
fabric-ca-server start -H /home/zym/fabric-ws/fabric-ca-server --boot admin:adminpw
启动完成之后可以通过客户端程序或者通过fabric-ca-client模块访问fabric-server服务。
3 Fabric-ca-client
fabric-ca-server提供了一组RESTAPI接口供第三方应用程序调用。fabric-ca-client对这些RESTAPI接口进行了封装,只需设置简单的参数便可以完成账号注册、账号授权等操作。
3.1 Fabric-ca-client模块子命令
- enroll: 登记账号
- gencrl: 撤销证书
- gencsr: 创建证书签名
- getcacert: 获取CA
- reenroll: 重新登记账号
- register: 注册一个新账号
- revoke: 撤销一个账号
- version: 显示版本信息
3.2 Fabric-ca-client模块参数选项
fabric-ca-client所有子命令公用一组全局选项,不同的子命令需要的选项是不一样的。fabric-ca-client模块的选项及其选项的作用如下:
3.2.1 基本管理命令
--caname: #CA服务器的名称
-H,--home: #客户端的目录,用来存放客户端相关的文件,默认为"~/.fabric-ca-client"
-M, --mspdir: #客户端的账号文件目录,默认为"msp"
-d, --debug: #将客户端的日志设为debug模式
-u,