记一次 fabric 新增节点证书错误处理
使用
cryptogen工具生成新节点证书并动态添加 raft 节点时出现x509: certificate signed by unknown authority
问题
现有区块链中已有 orderer 节点有 peer 节点,需要动态添加新的 orderer 节点。使用 fabric 提供工具 cryptogen 生成证书后完成前面的各种操作,在最后提交更新请求时出现如下错误提示:
| 1 | peer channel update -f channel-artifacts/updated_envelope.pb -c ${CHANNEL_NAME} -o ${ORDERER_ADDRESS} --tls true --cafile ${ORDERER_CA} | 
现象
经过多次测试排查问题后,发现 crypto-config/ordererOrganizations/blockchian.example.com/ 目录下多个文件在执行命令新增证书后其 MD5 值与之前不一致。
示例:
- 初次生成证书文件 - shell - 1 - cryptogen generate --config=crypto-config.yaml - 文件 MD5 - tlsca/tlsca.blockchian.example.com-cert.pem:adf10329c0281d13546e3ef7b43b788a
- ca/ca.blockchian.example.com-cert.pem:7e75be36071ea6214d4f97fc88e0b082
 
- 生成新节点证书 - 添加新配置文件并生成新节点证书 - shell - 1 - cryptogen generate --config=orderer1-crypto.yaml - 文件 MD5 - tlsca/tlsca.blockchian.example.com-cert.pem:50b25208219d6a35e36e7764841dbfe4
- ca/ca.blockchian.example.com-cert.pem:88bfff4b89dd3968c0f6b0c301cf78e9
 
使用命令 md5sum <file> 获取文件 MD5 值,或者备份该文件对比两次证书生成后的文件内容,可获得文件差异
解决方法
后来发现新节点加入如果是通过 cryptogen 工具生成证书,那么新节点加入需要通过 Extend 选项扩展而不是直接使用 generate
示例:
- 初次生成证书文件 - shell - 1 - cryptogen generate --config=crypto-config.yaml - 文件 MD5 - tlsca/tlsca.blockchian.example.com-cert.pem:efee993ed177d1e83ca68bdf4687a42a
- ca/ca.blockchian.example.com-cert.pem:b4c3a56a8275deccd4c9314e57f65a53
 
- 生成新节点证书 - 添加新配置文件并生成新节点证书 - shell - 1 - cryptogen extend --config=orderer1-crypto.yaml - 文件 MD5 - tlsca/tlsca.blockchian.example.com-cert.pem:efee993ed177d1e83ca68bdf4687a42a
- ca/ca.blockchian.example.com-cert.pem:b4c3a56a8275deccd4c9314e57f65a53
 
- 本文标题:记一次 fabric 新增节点证书错误处理
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/410c896a/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!






