1.配置读取
读取顺序:
a) 命令行参数
b) 环境变量(命名需要带有FABRIC_CA_SERVER)
c) 主配置目录(未指定配置文件路径时)下的本地配置文件来读取
比如TLS配置优先如下:
a) 命令行参数:--tls-enabled=true
b) 环境变量:FABRIC_CA_SERVER_TLS_ENABLED=true
c) 配置文件 tls.enabled=true
2.主配置目录
主配置目录:配置文件默认默认从主配置目录下查找,CA还可以在该目录下预置证书和密钥
默认的主配置目录:/etc/hyperledger/fabric-ca-server
主配置具体路径获取顺序:
FABRIC_CA_SERVER_HOME
FABRIC_CA_HOME
CA_CFG_PATH
3.fabric-ca-server初始化
##理解参考Fabric CA运行流程的时序图的第一步##
主配置文件不存在,需要添加参数-b <USER_NAME>:<PASSWORD>来指定Fabric-CA启动后默认的管理员用户密码;
主配置文件存在或者启用了LDAP功能时,则不需要指定用户名:密码
初始化命令:
fabric-ca-server init -b admin:adminpw
完成初始化后,主配置目录下会生成如下四个文件
1)ca-cert.pem :PEM格式的CA证书文件,自签名
2)fabric-ca-server-config.yaml : 默认配置文件
3)fabric-ca-server.db :存放数据的sqlite数据库
4)msp/keystore/ :路径下存放个人身份的私钥文件(_sk文件),对应签名证书
4.fabric-ca-server启动
##理解参考Fabric CA运行流程的时序图的第三步##
主配置文件不存在,需要添加参数-b <USER_NAME>:<PASSWORD>来指定Fabric-CA启动后默认的管理员用户密码;
主配置文件存在或者启用了LDAP功能时,则不需要指定用户名:密码
启用命令:
fabric-ca-server start -b admin:adminpw
5.RESTful API
接口定义参考项目代码目录下的swagger/swagger-fabric-ca.json
/cainfo:获取某个CA服务的基本信息
/enroll:使用用户登记功能
/reenroll:重新登记用户功能
/register:使用用户注册功能
/revoke:撤销某个证书
/tcert:申请获取一批交易证书
通过http请求对接口的调用示例如下:
curl -X POST -d '{"admin":"adminpw"}' http://localhost:7054/api/v1/cainfo
{"success":true,"result":{"CAName":"ca.example.com","CAChain":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNGakNDQWIyZ0F3SUJBZ0lVT0JybnZYSGpDbEtnRXZwQ3ZENVdjam52NDNJd0NnWUlLb1pJemowRUF3SXcKYURFTE1Ba0dBMVVFQmhNQ1ZWTXhGekFWQmdOVkJBZ1REazV2Y25Sb0lFTmhjbTlzYVc1aE1SUXdFZ1lEVlFRSwpFd3RJZVhCbGNteGxaR2RsY2pFUE1BMEdBMVVFQ3hNR1JtRmljbWxqTVJrd0Z3WURWUVFERXhCbVlXSnlhV010ClkyRXRjMlZ5ZG1WeU1CNFhEVEUzTURreU5UQTFNVE13TUZvWERUTXlNRGt5TVRBMU1UTXdNRm93YURFTE1Ba0cKQTFVRUJoTUNWVk14RnpBVkJnTlZCQWdURGs1dmNuUm9JRU5oY205c2FXNWhNUlF3RWdZRFZRUUtFd3RJZVhCbApjbXhsWkdkbGNqRVBNQTBHQTFVRUN4TUdSbUZpY21sak1Sa3dGd1lEVlFRREV4Qm1ZV0p5YVdNdFkyRXRjMlZ5CmRtVnlNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUU2ZzFrVk95M2VRYktiMU9ZRlgvWS9SU0IKWVV6YzV6TGlWZzdLVnMvRGk0NW9UNWlKQmQvaEs5TW9OemZOTGU5Uk9GbTRxR1NWWUpWbWlDNU9KY0lvamFORgpNRU13RGdZRFZSMFBBUUgvQkFRREFnRUdNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUV3SFFZRFZSME9CQllFCkZKTXZMSTR4ekV5MGtFV3EyWG5yaENYOXVQSUNNQW9HQ0NxR1NNNDlCQU1DQTBjQU1FUUNJRmRXVHA3dUdEcFIKaENkeGlXaVExaFk1S2lzQndpSmszZTlsZTNtNUpGR3ZBaUFZYzRxbGg4cFNSUVFyNm15R25GKzcya0pibGlzYwoyYWRmWlAxWTVkYWIrdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K"},"errors":[],"messages":[]}
通过SOAPUI调用接口示例: