Fabric CA

参考
1.fabric-ca安装
2.Fabric-CA 架构及安装
3.Fabric-Ca使用
4.Fabric CA的部署与使用
5.HyperLedger Fabric中Fabric-CA的使用
6.Fabric CA源码和镜像编译
sudo gedit /etc/profile
7.Fabric-CA 架构及安装
8.Fabric CA的部署与使用

【GO】详解GOROOT和GOPATH
go语言的工作空间和GOPATH环境变量

待学习
Go Modules 终极入门

HyperLedger Fabric 1.4 生产环境使用ca生成msp和tls(12)
9-HyperLedger-Fabric原理-MSP详解(一)-MSP基础

1.MSP

1.1 MSP的定义与作用

1.2 MSP的组成结构

1.3 MSP应用

2 Fabric CA简介及安装

2.1 Fabric CA 简介

Fanric CA是Hyperledger Fabric的证书办法机构(CA),是Fabric内一个可选的MemberService组件,对网络内各个实体的身份证书进行管理,主要功能如下:
1.负责Fabric网络内所有实体(Identity)身份的注册。
2.负责对数字证书的签发,包括ECerts(身份证书)、TCerts(交易证书)。
3.负责证书的续签或吊销。

2.2 Fabric CA 安装

1. 环境要求

(1)安装Golang1.9或以上版本并设置GOPATH环境变量
~~我的环境变量的配置

export GOROOT=/usr/local/go
export GOPATH=/home/lijiangtao/go
export GOBIN=/usr/local/go/bin

(2)安装libtool与libltdl-dev依赖包

$ sudo apt install libtool libltdl-dev

2.安装服务端与客户端

方式一:安装服务端与客户端二进制命令到$GOPATH/bin目录下(用此方法没有成功

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

命令执行完后,会自动在$GOPATH/bin目录下产生两个可执行文件:
fabric-ca-client,fabric-ca-server
设置环境变量,以便于在任何路径下都可以直接使用两个命令

export PATH=$PATH:$GOPATH/bin

go get -u github.com/hyperledger/fabric-ca/cmd/… #注意,该命令需使用root权限执行(sudo -i登录管理员权限),其中相关配置文件需在.profile文件中重新配置

方式二:从源码编译安装(操作成功)

首先在系统中建立以下路径

mkdir -p $GOPATH/src/github.com/hyperledger/
$ cd $GOPATH/src/github.com/hyperledger/

从Github上面将Fabric-Ca仓库克隆到本地:

$ git clone https://github.com/hyperledger/fabric-ca.git

进入到fabric-ca文件夹

$ cd fabric-ca

使用make命令编译,这一步编译时出现如下错误:Fabric_Error笔记(3)

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

自动在当前的fabric-ca目录下生成bin目录,目录中包含fabric-ca-client与fabric-ca-server两个可执行文件
设置环境变量
执行命令:$ sudo vi /etc/profilesudo gedit /etc/profile,进入编辑界面,在export PATH中加入/home/lijiangtao/go/src/github.com/hyperledger/fabric-ca/bin,如下图
在这里插入图片描述加载环境变量
执行命令$ source /etc/profile

3 启动Fabric CA

3.1 初始化

(1)确定Fabric CA服务器的主目录
返回HOME目录下,创建一个名为fabric-ca的目录并进入该目录

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

创建该目录的目的是将其作为Fabric CA服务器的主目录。默认服务器主目录为“./”。
(2)初始化Fabric CA
进入fabric-ca文件夹中(必须进入fabric-ca目录下)

$ fabric-ca-server init -b admin:pass    #此命令会在fabric-ca文件夹中生成几个相关文件

在这里插入图片描述(3)或者使用如下命令:快速启动并初始化fabric-ca-server服务

$ cd ./fabric-ca    #必须进入fabric-ca目录下
$ fabric-ca-server start -b admin:pass

4 Fabric CA客户端命令

4.1 fabric-ca-client主要子命令

fabric-ca-client命令可以与服务端进行交互,如下子命令

affiliation:管理分支机构
certificate:管理证书
enroll:认证一个账号
gencrl:撤销证书(生成一个CRL:Certificate Revocation Lists,证书撤销表)
gencsr:创建证书签名(生成一个CSR:Certificate Signing Request,认证签名请求)
getcainfo:获取CA证书
identity:管理账号
reenroll:重新认证账号
register:注册新账户
revoke:撤销账号
version:显示版本信息

4.2 注册用户

新打开一个终端(随意路径下),执行如下命令:

$ export PATH=$PATH:$GOPATH/bin   #设置fabric-ca-client所在路径
$ export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin   #设置Fabrci CA客户端主目录   
$ fabric-ca-client enroll -u http://admin:adminpw@localhost:7054  #调用在7054端口运行的Fabric CA服务器来注册ID为admin且密码为pass的标识  

注:用户名与密码不匹配,
运行注册命令会产生如下错误Error: Response from server: Error Code: 20 - Authentication failure 详见Fabric_Error笔记(4)

上面命令执行完成后,会在fabric-ca文件夹中产生clients文件夹,生成的文件结构如下

fabric-ca/clients/
└── admin
    ├── fabric-ca-client-config.yaml
    └── msp
        ├── cacerts
        │   └── localhost-7054.pem    #CA服务器的根证书,只不过换了一个名字
        ├── IssuerPublicKey
        ├── IssuerRevocationPublicKey
        ├── keystore
        │   ├── 40baaa1f2151319d26c5e956b29d6e9c62784283ebf53a73cef8bc1cc10bb395_sk    #当前用户的秘钥信息
        │   ├── 80c29e496c926d7c6841422476b5960ea339de17b83cca46454a864f06209c66_sk
        │   ├── 8f8af6bc5da59225d1019dcf98d868b01f58dddec90406f2ebd9fae921523d09_sk
        │   └── bc2cb82a5c9b425afda7dbf1131d4fca5e4f63439345ea4ae6271f48df1db858_sk
        ├── signcerts
        │   └── cert.pem     #当前用户的证书
        └── user

6 directories, 9 files

4.3 登记用户

注册成功的用户可以使用register命令发起登记请求
设置登记请求的目的是授权注册表示类型适当的权限
Fabric CA服务器会在注册用户登记期间进行3次授权检查。

使用一个管理员标识的凭据注册登记ID为admin2的新用户,从属关系为org1.department1,名为hf.Revoker的属性值为true,以及名为admin的属性值为true。:ecert后缀表示默认情况下,admin属性及其值将插入用户的注册证书中,实现访问控制决策

$ export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin
$ fabric-ca-client register \
    --id.name admin2     \
    --id.affiliation org1.department1 \
    --id.attrs 'hf.Revoker=true,admin=true:ecert' \
    --id.secret pass2   #添加密码

在这里插入图片描述

4.4 登记注册节点

1 登记节点

$ export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/admin
$ fabric-ca-client register \
    --id.name peer1 \
    --id.type peer \
    --id.affiliation org1.department1 \
    --id.secret peer1pw

2 注册节点

$ export FABRIC_CA_CLIENT_HOME=$HOME/fabric-ca/clients/peer1
$ fabric-ca-client enroll \
    -u http://peer1:peer1pw@localhost:7054 \
    -M $FABRIC_CA_CLIENT_HOME/msp

命令执行成功会在$Fabric_CA_CLIENT_HOME目录下生成指定的MSP目录,在此目录下生成MSP的私钥和证书。

4.5 其他命令

1.getcainfo命令
2.reenroll命令
3.revoke命令

4.6 查看AKI和序列号

(1)AKI是公钥标识号,代表签发该证书机构的身份
通过下面命令查看根证书的AKI与序列号信息

$ openssl x509 -in $FABRIC_CA_CLIENT_HOME/msp/signcerts/cert.pem -text -noout

命令执行后,终端输出如下类似内容:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:  #序列号
            22:fd:45:a7:61:10:9b:53:53:9d:f4:43:bd:3d:6b:4f:33:d0:1e:5e
        Signature Algorithm: ecdsa-with-SHA256
        Issuer: C = US, ST = North Carolina, O = Hyperledger, OU = Fabric, CN = fabric-ca-server
        Validity
            Not Before: Aug 30 06:59:00 2021 GMT
            Not After : Aug 30 08:46:00 2022 GMT
        Subject: C = US, ST = North Carolina, O = Hyperledger, OU = org1 + OU = peer + OU = department1, CN = peer1
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:54:fe:2f:9a:4e:39:e9:e3:58:a4:09:a7:1d:6d:
                    dc:70:8b:5b:d2:97:19:30:70:a8:12:98:d4:c7:8b:
                    a3:cf:5c:00:96:e5:69:e4:91:55:e1:90:34:92:32:
                    6e:14:e2:8a:1f:0c:e9:c1:4b:19:bc:04:f2:13:7b:
                    8d:13:2f:2c:03
                ASN1 OID: prime256v1
                NIST CURVE: P-256
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier: #keyid后面的内容就是AKI
                09:9B:8E:5C:F9:5C:C4:61:9A:CE:5A:EE:57:28:AB:3B:CE:42:88:CF
            X509v3 Authority Key Identifier: 
                keyid:F0:32:09:F5:29:32:44:23:DF:7E:C5:48:8D:3E:8D:26:58:D8:FC:9E

            X509v3 Subject Alternative Name: 
                DNS:lijiangtao-Legion-Y7000P-2019
            1.2.3.4.5.6.7.8.1: 
                {"attrs":{"hf.Affiliation":"org1.department1","hf.EnrollmentID":"peer1","hf.Type":"peer"}}
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:1a:fc:ba:c3:85:67:c7:ee:04:9f:93:b2:77:16:
         39:7a:6a:4c:35:98:88:08:c8:b0:9e:ee:f6:97:1f:df:6b:18:
         02:20:23:7f:9d:b8:7f:8e:cf:12:1e:ca:cd:36:21:05:1d:90:
         b0:ad:e4:e7:5a:e0:f7:37:66:41:fc:3b:49:8a:5c:22

(2)单独获取AKI

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

终端输出内容:f03209f529324423df7ec5488d3e8d2658d8fc9e

(3)单独获取序列号:

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

终端输出内容:22FD45A761109B53539DF443BD3D6B4F33D01E5E

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值