[Introduction à Hyperledger Fabric] (2) Serveur de compte Fabric: Fabric-ca

Le projet Fabric-ca est un projet open source lancé spécifiquement pour résoudre le problème du compte Fabric.Il résout parfaitement le problème de la génération de compte Fabric. Il se compose de deux modules, Fabric-ca-server et Fabric-ca-client. Fabric-ca-server joue un rôle très important dans le projet Fabric-ca.

1. Compilation et installation de Fabric-ca

Étape 1: installer le package de composants système

sudo apt-get install libtool libltdl-dev

Étape 2: Téléchargez le code source et compilez

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 

Étape 3: Installez le fichier exécutable compilé

cd $GOPATH/github.com/hyperledger/fabric-ca/bin/
cp $GOPATH/github.com/hyperledger/fabric-ca/bin/* /usr/local/bin/

Étape 4: Vérifiez si l'installation a réussi

fabric-ca-server version
fabric-ca-client version

2. Démarrage et configuration de Fabric-ca-server

Une fois le fabric-ca-server démarré, il existe en tant que processus démon et les requêtes peuvent être lancées via fabric-ca-client ou d'autres clients qui implémentent le protocole de communication. Il existe trois façons de définir les informations de configuration dans faric-ca-server, à savoir les paramètres de démarrage, les variables d'environnement et les fichiers de configuration.

1. Options de ligne de commande de Fabric-ca-server

Le module fabric-ca-server a trois sous-commandes, à savoir:

  • init: initialiser le serveur fabric-ca
  • start: démarrer le serveur fabric-ca
  • version: afficher la version

2. Options de Fabric-ca-server

Insérez la description de l'image ici

3. Initialisation de Fabric-ca-server

Fabric-ca-server peut être paramétré via des fichiers de configuration. Exécutez la sous-commande init de fabric-ca-server pour initialiser et générer les fichiers de configuration associés. Avant d'exécuter la commande init, vous devez créer des dossiers associés. Cet article crée les dossiers suivants (en fait, vous pouvez spécifier le chemin du dossier à volonté):

mkdir -p  ~/go/src/github.com/hyperledger/fabric-ca-server

Initialisation du serveur Fabric-ca-server:

cd ~/go/src/github.com/hyperledger/fabric-ca-server
fabric-ca-server init -b admin:adminpw

Insérez la description de l'image ici
Une fois la commande d'initialisation fabric-ca-server exécutée, les fichiers de configuration correspondants seront générés dans le répertoire courant. Les noms et fonctions de ces fichiers sont les suivants:

fabric-ca-server-config.yaml:配置文件
fabric-ca-server.db:数据库文件(数据库选择sqlite3时有效)
ca-cert.pem:证书文件
msp:私钥文件夹

4. Démarrage de Fabric-ca-server

Après avoir édité le fichier de configuration, la commande de démarrage est la suivante:

fabric-ca-server start -H '/home/yulin/go/src/github.com/hyperledger/fabric-ca' --boot admin:adminpw

Insérez la description de l'image ici

Troisièmement, l'utilisation de Fabric-ca-client

fabric-ca-server fournit un ensemble d'interfaces RESTAPI pour les applications tierces à appeler. Fabric-ca-client encapsule ces interfaces RESTAPI et n'a besoin que de définir des paramètres simples pour terminer l'enregistrement du compte, l'autorisation du compte et d'autres opérations.

1. Sous-commande du module Fabric-ca-client

  • s'inscrire: créer un compte
  • gencrl: révoquer le certificat
  • gencsr: créer une signature de certificat
  • getcacert: obtenir CA
  • réinscription: réenregistrer le compte
  • s'inscrire: créer un nouveau compte
  • révoquer: révoquer un compte
  • version: afficher les informations de version

2. Options des paramètres du module Fabric-ca-client

Le module fabric-ca-client est le même que le module fabric-ca-server. Toutes les sous-commandes partagent un ensemble d'options globales. Différentes sous-commandes nécessitent des options différentes. Les options du module fabric-ca-client et leurs fonctions sont les suivantes:
(1) Commandes de gestion de base

    --caname:  #CA服务器的名称
-H,--home:    #客户端的目录,用来存放客户端相关的文件,默认为"~/.fabric-ca-client"
-M, --mspdir:  #客户端的账号文件目录,默认为"msp"
-d, --debug:   #将客户端的日志设为debug模式
-u, --url:     #fabric-ca-server地址,默认为0.0.0.0:7054

(2) Commandes liées à l'enregistrement de compte

--enrollment.attrs:     #账号登记请求中的属性
--enrollment.label:    #账号登记请求中HSM相关的标签
--enrollment.profile:  #登记请求中的profile

(3) Enregistrement de compte

--id.affiliation:       #账号注册时组织部门信息
--id.attrs:             #账号注册时属性列表
--id.maxenrollments:    #当前注册后可以进行登记的次数,默认为-1
--id.name               #账号注册时的用户名
--id.secret             #账号注册时的密码
--id.type               #账号注册的类型,目前支持('peer,app,user'),默认值为"user"。

(4) Révocation de certificat

-a,--revoke.aki:        #注销证书时需要的公钥
-e,--revoke.name:       #注销证书时的实体名称
-r,--revoke.reason:     #注销原因
-s,--revoke.serial:     #注销证书的序列号

(5) Signature du certificat CA

--csr.cn:               #CA证书请求时,请求报文中的通用名
--csr.hosts:            #CA签名请求时,请求报文中的主机名
--csr.names:            #CA签名请求时,请求报文中的附加名称
--csr.serialnumber:    #CA签名请求时,请求报文中的序列号
-m,--myhost:            #CA签名请求时,请求报文中请求主机名称,默认值是本地主机

(6) Communication TLS

--tls.certfiles:        #TLS通信模式下的证书文件,PEM文件格式。
--tls.client.certfile:  #TLS通信模式下客户端的文件,PEM文件格式。
--tls.client.keyfile:   #TLS通信模式下客户端的私钥文件。

(7) Commandes couramment utilisées
Enregistrer un compte

fabric-ca-client register --id.name peer2 --id.type peer --id.affiliation org1.department1 --id.secret peer2wd -u http://hocalhost:7054

Charger les informations du compte

fabric-ca-client enroll -u http://admin:adminpw@localhost:7054 -M '/home/yulin/go/src/github.com/hyperledger/fabric-client'

Obtenez le certificat du serveur CA

fabric-ca-client getcacert -u http://localhost:7054 -M ~/go/src/github.com/hyperledger/testuser/msp

Quatrièmement, intégrez fabric-ca-server dans les projets existants

Fabric-ca est un complément puissant au module cryptogène de Fabric et joue un rôle très important dans les projets réels. Dans le projet Fabric, le module cryptogen est généralement utilisé pour générer les fichiers de compte de l'organisation, du nœud homologue, du nœud de commande et d'autres modules. Cependant, si le fichier de compte utilisateur doit être généré dynamiquement dans le projet, à ce stade, Fabric- ca peut fournir une meilleure aide afin de créer Fabric-ca Pour générer dynamiquement des comptes d'utilisateurs pour l'organisation spécifiée, il est nécessaire de lier fabric-ca et les organisations associées.

1. Liez fabric-ca-server à l'organisation existante

Ici, nous lions fabric-ca-server à la précédente [Introduction à Hyperledger Fabric] (1) Exécutez rapidement un simple réseau Fabric 1 dans org1.
Tout d'abord, ouvrez le fichier de configuration fabric-ca-server fabric-ca-server-config.yaml et recherchez le contenu suivant dans le fichier de configuration:

ca:
  # Name of this CA
  name:
  # Key file (is only used to import a private key into BCCSP)
  keyfile:
  # Certificate file (default: ca-cert.pem)
  certfile:
  # Chain file
  chainfile:

Entrez ensuite [Introduction à Hyperledger Fabric] (1) Exécutez rapidement un simple réseau Fabric 1 pour stocker le dossier de certificat lié à org1, et exécutez l'arborescence -L 2 pour afficher les informations du compte:

$ cd '/home/yulin/blockchain/fabric/Hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.example.com' 

$ tree -L 2

Insérez la description de l'image ici
Modifiez la configuration appropriée dans le fichier de configuration fabric-ca-server fabric-ca-server-config.yaml comme suit:

ca:
  # Name of this CA
  name: ca-org1
  # Key file (is only used to import a private key into BCCSP)
  keyfile: /home/yulin/blockchain/fabric/Hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.example.com/ca/priv_sk
  # Certificate file (default: ca-cert.pem)
  certfile: /home/yulin/blockchain/fabric/Hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.example.com/ca/ca.org1.example.com-cert.pem
  # Chain file
  chainfile: ca-chain.pem
  • keyfile: correspond au fichier avec le suffixe de nom de fichier _sk dans le dossier ca.
  • certfile: correspond au fichier nommé ca.org1.example.com-cert.pem dans le dossier ca.

Au cours des étapes ci-dessus, fabric-ca-server est lié à l'organisation org1.

2. Générez un compte à partir du serveur fabric-ca lié via le client

Étape 1: définition des variables d'environnement Fabric-ca-client
Créez un répertoire pour stocker les fichiers de compte Fabric-ca-client (msp).

mkdir ~/go/src/github.com/hyperledger/fabric-client

Une fois le répertoire créé, enregistrez-vous avec le compte administrateur et le mot de passe pour obtenir le fichier entier du compte administrateur (msp).

export FABRIC_CA_CLIENT_HOME=$GOPATH/src/github.com/hyperledger/fabric-client
fabric-ca-client enroll -u http://admin:adminpw@localhost:7054 -M ~/go/src/github.com/hyperledger/fabric-client

Insérez la description de l'image ici
Insérez la description de l'image ici

Remarque: fabric-ca-server doit être démarré.

Étape 2: Enregistrez un compte Une
fois que l'administrateur s'est enregistré, enregistrez un compte avec le nom d'utilisateur user_test et le mot de passe user2wd. La commande est la suivante:

$ fabric-ca-client register --id.name user_test --id.type user --id.affiliation org1.department1 --id.secret user2wd -u http://localhost:7054 -H ~/go/src/github.com/hyperledger/fabric-client
2021/03/28 15:26:26 [INFO] Configuration file location: /home/yulin/go/src/github.com/hyperledger/fabric-client/fabric-ca-client-config.yaml
Password: user2wd

Étape 3: Charger
le compte Pour charger le compte user_test enregistré à l'étape précédente dans le répertoire local, vous devez d'abord créer un répertoire local pour stocker le certificat du nouvel utilisateur téléchargé depuis le serveur. Le répertoire peut être n'importe quel répertoire. Le contenu de cet article est le suivant:

mkdir ~/go/src/github.com/hyperledger/testuser

Entrez le répertoire ci-dessus, enregistrez le compte user_test et enregistrez le fichier de compte dans le répertoire spécifié par -M.

$ fabric-ca-client enroll -u http://user_test:user2wd@localhost:7054 -M ~/go/src/github.com/hyperledger/fabric-client/testuser/msp
2021/03/28 15:31:33 [INFO] generating key: &{
    
    A:ecdsa S:256}
2021/03/28 15:31:33 [INFO] encoded CSR
2021/03/28 15:31:33 [INFO] Stored client certificate at /home/yulin/go/src/github.com/hyperledger/fabric-client/testuser/msp/signcerts/cert.pem
2021/03/28 15:31:33 [INFO] Stored root CA certificate at /home/yulin/go/src/github.com/hyperledger/fabric-client/testuser/msp/cacerts/localhost-7054.pem
2021/03/28 15:31:33 [INFO] Stored Issuer public key at /home/yulin/go/src/github.com/hyperledger/fabric-client/testuser/msp/IssuerPublicKey
2021/03/28 15:31:33 [INFO] Stored Issuer revocation public key at /home/yulin/go/src/github.com/hyperledger/fabric-client/testuser/msp/IssuerRevocationPublicKey

Insérez la description de l'image ici
Étape 4: Copiez la signature de l'administrateur et le fichier de certificat TLS public La
commande de copie est la suivante:

$ cp /home/yulin/blockchain/fabric/Hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.example.com/users/[email protected]/msp/signcerts/* /home/yulin/go/src/github.com/hyperledger/fabric-client/testuser/msp/admincerts
$ cp /home/yulin/blockchain/fabric/Hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/* /home/yulin/go/src/github.com/hyperledger/fabric-client/testuser/tls

Étape 5: Vérifiez le compte.
Insérez la description de l'image ici
En observant la structure du fichier, on constate que le fichier de compte généré par le module cryptogène est cohérent, mais le nom du fichier est différent. C'est normal.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44029550/article/details/115280703
conseillé
Classement