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-ca
csr.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!
评论