Fabric--CA 应用与配置

本文详细介绍了Fabric CA的基本组件、安装步骤、服务端与客户端命令,包括注册、登记、交互方式等,并展示了如何使用RESTful API进行操作。内容涵盖CA服务的初始化、证书管理及AKI和序列号的查看。
摘要由CSDN通过智能技术生成

Fabric CA 应用与配置

简介

Fabric CA项目是超级账本Fabric内的MemberService组件, 对网络内各个实体的身份证书的管理, 主要实现:

  • 负责Fabric网络内所有实体(Identity)的身份管理, 包括身份的注册、注销等
  • 负责证书管理, 包括ECerts(身份证书)、TCerts(交易证书)等的发放和注销
  • 服务端支持基于客户端命令行的RESTful API的交互方式

Fabric CA采用Go语言进行编写

基本组件

Fabric CA采用了典型的C/S架构, 目前包含两个基本组件, 分别实现服务端功能和客户端功能

  • 服务端: fabric-ca-server实现核心的PKI(Public Key Infrastructure: 公钥基础设施)服务功能, 支持多种数据库后台(包括SQlite3、MySQL、PostgreSQL等), 并支持集成LDAP用为用户注册管理功能
  • 客户端: fabric-ca-client封装了服务端的RESTful API, 提供访问服务端的命令, 供用户与服务端进行交互

安装服务端与客户端

安装Go1.9+

设置GOPATH环境变量

安装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-clientfabric-ca-server 两个可执行文件

设置环境变量

$ 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: 存放数据的sqlite数据库
  • msp/keystore/: 路径下存放个人身份的私钥文件(_sk文件), 对应签名证书

快速启动

快速启动并初始化一个fabric-ca-server服务

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

-b: 提供注册用户的名称与密码, 如果没有使用LDAP, 这个选项为必需. 默认的配置文件的名称为fabric-ca-server-config.yaml

如果之前没有执行初始化命令, 则启动过程中会自动先进行初始化操作. 即从主配置目录搜索相关证书和配置文件, 如果不存在则会自动生成

RESTful API

在打开的新终端中输入以下命令获取指定CA服务的基本信息.

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

如要获取默认CA服务的基本信息, 可以不带任何参数, 如:

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

服务端命令剖析

fabric-ca-server命令主要负责启动一个CA服务, 包括init和start两个子命令

服务端配置文件解析

fabric-ca-server-config.yaml配置文件包括通用配置, TLS配置, CA配置, 注册管理配置, 数据库配置, LDAP配置, 组织结构配置, 签名, 证书申请等几部分

version: 1.1.1-snapshot-e656889
port: 7054              # 指定服务的监听端口
debug: false            # 是否启用DEBUG模式, 输出更多的调试信息上
crlsizelimit: 512000

# 是否在服务端启用TLS,如果启用TLS后进行身份验证的证书和签名的私钥
tls:    
  enabled: false        # 是否启用TLS, 默认不启用
  certfile:         # TLS证书文件
  keyfile:          # TLS密钥文件
  clientauth:   # 客户端验证配置
    type: noclientcert      # 默认不进行身份验证
    certfiles:      # 进行客户端身份验证时, 信任的证书文件列表

# 包括实例的名称、签名私钥文件、身份验证证书和证书链文件乖;这些私钥和证书文件会用来作为生成ECert、TCert的根证书
ca:     
  name:         # CA服务名称. 可以支持多个服务
  keyfile:      # 密钥文件(默认
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值