Frabic CA 部署流程
Frabic CA 部署流程
TLS CA
提供加密通信使用的公钥证书,通常一个组织使用一个 TLS CA 根证书。
ORG CA
提供身份证明,节点证明自己属于该组织。
TLS CA
TLS CA 服务器搭建
配置:Server-side TLS
工具:fabric-ca-server
初始化
创建 TLS CA 管理员账户(Register)
- 用户名:密码
 
1  | # 创建文件夹  | 
以上操作实现:
- 生成 TLS CA root signed certificate ,即自签公钥证书
- 区块链网络中的所有组织成员节点都必须拥有该证书
 
 - 生成私钥并存储在 
/msp/keystore文件夹中 - 初始化数据库(默认使用 SQLite 数据库)
 - 根据传入的用户名密码初始化 TLS CA 管理员
 
修改配置
配置文件:fabric-ca-server-config.yaml
至少要注意/修改的配置:
post:端口tls-enabled:启用 TLS- 启动 CA 服务器后将生成自签证书 
tls-cert.pem 
- 启动 CA 服务器后将生成自签证书 
 ca.name:为 CA 命名,比如 TLS CA 可以叫tls-ca,组织的 CA 可以叫org-cacsr.hosts:设置 CA 服务器运行的主机名和 IP 地址signing.profiles.ca:TLS CA 不签发 CA 证书operatons.listenAddress:监听地址和端口
启动 TLS CA 服务器
启动时无法设置 CA 管理员账户
1  | ./fabric-ca-server start  | 
TLS CA 管理员账户登记(Enroll)
工具:fabric-ca-client
目录结构
1  | fabric-ca-client  | 
拷贝证书
fabric-ca-server-tls/ca-cert.pem 拷贝到 fabric-ca-client/tls-root-cert/tls-ca-cert.pem
每个和 TLS CA 通讯的节点都需要包含该证书
向 TLS CA 进行登记
使用用户名密码向 TLS CA 登记 CA 管理员账户
1  | ./fabric-ca-client enroll -d -u https://tls-admin:tls-adminpw@my-machine.example.com:7054 --tls.certfiles tls-root-cert/tls-ca-cert.pem --enrollment.profile tls --csr.hosts 'host1,*.example.com' --mspdir tls-ca/tlsadmin/msp  | 
参数说明:
-u https://tls-admin:tls-adminpw@my-machine.example.com:7054:TLS CA 服务器地址和端口--tls.certfiles tls-root-cert/tls-ca-cert.pem:TLS CA 根证书位置--enrollment.profile tls:向 TLS CA 登记- 如果在 TLS CA 服务器端的配置中移除了 
signing.profiles.ca,则该指令参数是必须的 
- 如果在 TLS CA 服务器端的配置中移除了 
 --csr.hosts 'host1,*.example.com':任何域名下的主机都被视为 host1--mspdir tls-ca/tlsadmin/msp:存储 TLS CA 管理员的 TLS 证书的位置
Organization CA
获得 TLS 证书
为之后要创建的 ORG CA 管理员用户进行注册(register)
1  | ./fabric-ca-client register -d --id.name rcaadmin --id.secret rcaadminpw -u https://my-machine.example.com:7054 --tls.certfiles tls-root-cert/tls-ca-cert.pem --mspdir tls-ca/tlsadmin/msp  | 
参数说明:
--id.name rcaadmin --id.secret rcaadminpw:用户名、密码--mspdir tls-ca/tlsadmin/msp:指向 TLS CA 管理员证书
为之后要创建的 ORG CA 管理员用户进行登记(enroll)
1  | ./fabric-ca-client enroll -d -u https://rcaadmin:rcaadminpw@my-machine.example.com:7054 --tls.certfiles tls-root-cert/tls-ca-cert.pem --enrollment.profile tls --csr.hosts 'host1,*.example.com' --mspdir tls-ca/rcaadmin/msp  | 
参数说明:
--mspdir tls-ca/rcaadmin/msp:存储 rcaadmmin 的 TLS 证书 的位置
部署 Organization CA
作为 enrollment CA / eCert CA / root CA
工具:fabric-ca-server
准备工作
- 向 TLS CA 注册并登记,即 rcaadmin
 - 拷贝之前生成的密钥对及 TLS 证书
- 私钥重命名为 
key.pem 
 - 私钥重命名为 
 
1  | # 创建文件夹  | 
初始化
创建 CA 管理员用户
1  | ./fabric-ca-server init -b rcaadmin:rcaadminpw  | 
按需修改生成的配置文件 fabric-ca-server-config.yaml
启动 CA 服务器
1  | ./fabric-ca-server start  | 
CA 管理员账户登记(Enroll)
rcaadmin 已经向 TLS 进行注册与登记,但是仅向 Organization CA 进行注册(初始化阶段),因此还需要向 CA 进行登记
工具:fabric-ca-client
目录结构
1  | fabric-ca-client  | 
向 CA 进行登记
使用用户名密码向 CA 登记 CA 管理员账户
1  | ./fabric-ca-client enroll -d -u https://rcaadmin:rcaadminpw@my-machine.example.com:7055 --tls.certfiles tls-root-cert/tls-ca-cert.pem --csr.hosts 'host1,*.example.com' --mspdir org1-ca/rcaadmin/msp  | 
以上操作生成文件夹 fabric-ca-client/org1-ca/rcaadmin/msp
1  | └── msp  | 
参阅
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Jckling's Blog!
 评论





