一:简介
在e2e_cli的例子中,所有用到的证书和私钥都是由cryptogen这个工具根据crypto-config.yaml而生成的。但是在实际的生产环境中,我们需要给每个org都建立自己的CA,用来管理本org的用户。本次是以e2e_cli为例子,然后手动的生成所有的证书和私钥,并进行手动的执行例子进行验证。
二:环境准备
1:linux环境(我的是vmware虚拟机, ubuntu16.04)
Go 1.9+ GOPATH环境变量安装成功
Libtool和libtdhl-dev需要安装
(ubuntu:sudo apt install libtool libltdl-dev)
2:可以成功执行e2e_cli例子(这是基本,毕竟在上面进行验证)
3:安装fabric-ca-server和fabric-ca-client的可执行文件到$GOPATH/bin目录下
(go get -u github.com/hyperledger/fabric-ca/cmd/...)
我是直接进行复制的,这样下不下来。
三:生成根CA的证书
生成自签CA证书有两种形式:通过可执行文件和镜像,下面进行分别的说明:
1:命令行形式
执行fabric-ca-server start -b admin:adminpw
-b选项为引导管理员提供注册ID和密码; 如果LDAP未启用“ldap.enabled”设置,则这是必需的。如果服务器以前没有被初始化init,它将在第一次启动时自行初始化。 在初始化期间,如果服务器尚不存在,服务器将生成ca-cert.pem和ca-key.pem文件(msp文件夹下),并且如果该文件不存在,还会创建一个默认配置文件fabric-ca-server-config.yaml。
注意:
(1):首先可以通过fabric-ca-server init进行初始化,创建证书和私钥以及配置文件,也可以直接进行start,第一次start时会自动执行init的操作。
(2):这种操作产生的根证书是自签的。可以进行验证:(openssl verify -CAfile ca-cert.pem ca-cert.pem 返回ok)
(3):证书可以通过openssl x509 -in ca-cert.pem -text进行查看。
2:使用镜像启动
- 进入到$GOPATH/src/github.com/hyperledger/fabric-ca/docker/server目录下然后对docker-compose.yaml文件进行编辑。
fabric-ca-server:
image: hyperledger/fabric-ca:x86_64-1.0.0-beta
container_name: fabric-ca-server
ports:
- "7054:7054"
environment:
- FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
volumes:
- "./fabric-ca-server:/etc/hyperledger/fabric-ca-server"
command: sh