记一次 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
:adf10329c0281d13546e3ef7b43b788aca/ca.blockchian.example.com-cert.pem
:7e75be36071ea6214d4f97fc88e0b082
生成新节点证书
添加新配置文件并生成新节点证书
shell 1
cryptogen generate --config=orderer1-crypto.yaml
文件 MD5
tlsca/tlsca.blockchian.example.com-cert.pem
:50b25208219d6a35e36e7764841dbfe4ca/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
:efee993ed177d1e83ca68bdf4687a42aca/ca.blockchian.example.com-cert.pem
:b4c3a56a8275deccd4c9314e57f65a53
生成新节点证书
添加新配置文件并生成新节点证书
shell 1
cryptogen extend --config=orderer1-crypto.yaml
文件 MD5
tlsca/tlsca.blockchian.example.com-cert.pem
:efee993ed177d1e83ca68bdf4687a42aca/ca.blockchian.example.com-cert.pem
:b4c3a56a8275deccd4c9314e57f65a53
- 本文标题:记一次 fabric 新增节点证书错误处理
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/410c896a/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!