相信很多人和我们一样,开始使用Hyperledger Fabric进行项目是从他的Test-network开始的吧,从最开始的单节点配置到后来扩展到多节点配置。但是基础还是从test-network来的。
进来,一些一年前的项目陆续出现一些问题,让我们发现了fabric里面这个大坑。
那就是TLS证书过期错误。
默认启动Fabric-ca的时候,还挺简单对吧,启动docker之后,程序会自动生成root证书,并根据root证书生成后续需要的tls证书和节点证书。
但是最近出问题之后,我们深入研究了fabric-ca的默认配置文件,发现其中
tls证书有效期默认为1年
enroll证书(各类角色,包括peer,orderer等)的证书有效期是5年。
root ca证书有效期默认是15年。
那经常会遇到问题的就是tls证书过期的问题了。也就是说,项目好端端跑了一年,就会突然遇到证书失效的问题……也是醉了。
解决方案1:重新生成tls证书
(请注意,这个方法成功完成了节点证书重新生成,但是因为提到的这个channel错误并没有最后成功)
删除fabric-ca生成的tls-cert.pem,重新启动ca,就可以重新生成tls证书,但是因为tls证书在各个节点的链接过程中,凡是涉及和ca进行认证交互的部分都需要,这个证书是拷贝到每个结构对应的所有节点了的,所以要逐个节点进行替换。
这样,5年内应该是没有问题了,5年之后,要重新执行enroll指令,为各个节点重新申请enroll证书,就可以完成续命。
经测试,在删除节点配置文件的tls文件夹之后,遇到了"channel xxx is not serviced by me"问题,经查,似乎和2.3以前版本需要创建consortium有关,这有个类似的问题

本文探讨了Hyperledger Fabric中TLS证书过期问题及其影响。提供了两种解决方案:一是重新生成TLS证书;二是重新部署项目。文章还介绍了fabric-ca的默认证书有效期,并给出了实践中的注意事项。
最低0.47元/天 解锁文章
3670

被折叠的 条评论
为什么被折叠?



