Hyperledger:Fabric CA 用户指南 [译]

Fabric CA 是 Hyperledger Fabric 的官方配套认证设施。

原文链接:http://hyperledger-fabric.readthedocs.io/en/latest/Setup/ca-setup.html

它提供的功能有:

    1. 身份认证,或者从 LDAP 中获取注册信息;
    2. 发行担保证书 ECerts (Enrollment Certificates);
    3. 发行交易证书 TCerts (Transaction Certificates),保障 Hyperledger Fabric 区域链交易平台上的信息匿名性和不可追踪性;
    4. 证书更新和撤销。

Fabric CA 属于典型的 CS (Client and Server) 架构,官方代码库:https://github.com/hyperledger/fabric-ca 。

本文目录

    1. 概述
    2. 入门
      1. 运行环境要求
      2. 安装
      3. Fabric CA 终端命令概览
    3. 配置文件格式
      1. 服务端配置文件格式
      2. 客户端配置文件格式
    4. 配置信息的优先级
    5. Fabric CA 服务端
      1. 服务端初始化
      2. 启动服务端
      3. 配置数据库
      4. 配置LDAP
      5. 配置集群
    6. Fabric CA 客户端
      1. 注册管理员账户
      2. 登记信息
      3. 担保背书(发放证书)
      4. 重新背书(更新证书)
      5. 撤销证书与清除注册信息
      6. 启用 TLS
    7. 附录 

概述

开篇的图示展现了 Fabric CA 服务端是如何参与到 Hyperledger Fabric 整体架构中去的。 

与 Fabric CA 服务端交互的方式有如下两种:

    1. 通过 Fabric CA 客户端
    2. 使用某种 Fabric SDK

与 Fabric CA 服务端的所有通信,都是通过 REST API 进行的。详情可查看 fabric-ca/swagger/swagger-fabric-ca.json 处的 swagger 文档中的 REST API 部分。

如前图所示,Fabric CA 客户端或 SDK 的请求首先会到达 Fabric CA 集群前端的高可用负载均衡服务端,实际的 CA 服务由后端的某台Fabric CA 服务端提供。同一集群中的所有 Fabric CA 服务端共享相同的后端数据库(或 LDAP)集群,以确保证书和身份的一致性。

入门

运行环境要求

    • Go 语言 1.7 及以上版本
    • 已正确设置 GOPATH 环境变量
    • 已安装 libtool 与 libtdhl-dev 包(更多信息请参看:https://www.gnu.org/software/libtool/)

安装

如下所示,将安装 fabric-ca-server 与 fabric-ca-client 两个终端命令行工具。

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

启动服务端:本地环境

如下所示,将按默认配置启动 Fabric CA 服务端,-b 选项用于指定管理员的账号与密码。

# fabric-ca-server start -b admin:adminpw 

默认将在当前目录创建一个名为 fabric-ca-server-config.yaml 的配置文件,该文件的存储位置也可以另行指定。

启动服务端:Docker 环境

也可以选择在 Docker 环境下运行服务端,如下将创建并通过 docker-compose 启动服务端

# cd $GOPATH/src/github.com/hyperledger/fabric-ca
# make docker
# cd docker/server
# docker-compose up -d

名为 hyperledger/fabric-ca 的 docker 镜像中包含了 fabric-ca-server 与 fabric-ca-client 命令行工具。 

Fabric CA 终端命令概览

fabric-ca-server 命令用法:

 1 Hyperledger Fabric Certificate Authority Server
 2 
 3 Usage:
 4   fabric-ca-server [command]
 5 
 6 Available Commands:
 7   init        Initialize the Fabric CA server
 8   start       Start the Fabric CA server
 9 
10 Flags:
11       --address string                         Listening address of Fabric CA server (default "0.0.0.0")
12   -b, --boot string                            The user:pass for bootstrap admin which is required to build default config file
13       --ca.certfile string                     PEM-encoded CA certificate file (default "ca-cert.pem")
14       --ca.chainfile string                    PEM-encoded CA chain file (default "ca-chain.pem")
15       --ca.keyfile string                      PEM-encoded CA key file (default "ca-key.pem")
16   -n, --ca.name string                         Certificate Authority name
17   -c, --config string                          Configuration file (default "fabric-ca-server-config.yaml")
18       --csr.cn string                          The common name field of the certificate signing request to a parent Fabric CA server
19       --csr.hosts stringSlice                  A list of space-separated host names in a certificate signing request to a parent Fabric CA server
20       --csr.serialnumber string                The serial number in a certificate signing request to a parent Fabric CA server
21       --db.datasource string                   Data source which is database specific (default "fabric-ca-server.db")
22       --db.tls.certfiles stringSlice           PEM-encoded list of trusted certificate files
23       --db.tls.client.certfile string          PEM-encoded certificate file when mutual authenticate is enabled
24       --db.tls.client.keyfile string           PEM-encoded key file when mutual authentication is enabled
25       --db.type string                         Type of database; one of: sqlite3, postgres, mysql (default "sqlite3")
26   -d, --debug                                  Enable debug level logging
27       --ldap.enabled                           Enable the LDAP client for authentication and attributes
28       --ldap.groupfilter string                The LDAP group filter for a single affiliation group (default "(memberUid=%s)")
29       --ldap.url string                        LDAP client URL of form ldap://adminDN:adminPassword@host[:port]/base
30       --ldap.userfilter string                 The LDAP user filter to use when searching for users (default "(uid=%s)")
31   -p, --port int                               Listening port of Fabric CA server (default 7054)
32       --registry.maxenrollments int            Maximum number of enrollments; valid if LDAP not enabled
33       --tls.certfile string                    PEM-encoded TLS certificate file for server's listening port (default "ca-cert.pem")
34       --tls.clientauth.certfiles stringSlice   PEM-encoded list of trusted certificate files
35       --tls.clientauth.type string             Policy the server will follow for TLS Client Authentication. (default "noclientcert")
36       --tls.enabled                            Enable TLS on the listening port
37       --tls.keyfile string                     PEM-encoded TLS key for server's listening port (default "ca-key.pem")
38   -u, --url string                             URL of the parent Fabric CA server
39 
40 
41 Use "fabric-ca-server [command] --help" for more information about a command.
CA Server CMD

相关文章:

  • 2022-12-23
  • 2021-05-04
  • 2021-11-23
  • 2021-09-06
  • 2021-07-20
  • 2021-05-17
  • 2021-04-05
猜你喜欢
  • 2021-12-14
  • 2021-12-07
  • 2021-11-22
  • 2022-01-13
  • 2021-06-25
  • 2021-08-22
  • 2021-11-12
相关资源
相似解决方案