微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

到期后 RAFT 订购者之间的 TLS 证书更新僵局

如何解决到期后 RAFT 订购者之间的 TLS 证书更新僵局

我的网络中订购者和同行的 TLS 和 MSP 证书已过期。因此,我更新了它们并将 TLS、MSP 文件夹更改为新文件夹。重新启动我的所有订购者和同行后,订购者会保留所有订购者的 SERVICE_UNAVAILABLE: rejected by Consenter: channel identitych is not serviced by me 错误查询每个节点的链码效果很好,所以这似乎是一个订购者的问题。

当我的订购者开始时,订购者记录了如下警告:

[orderer.consensus.etcdraft] detectSelfID -> WARN 015 Could not find -----BEGIN CERTIFICATE-----
MIIC8DCCApagAwIBAgIUOhF5HhLQW...
-----END CERTIFICATE-----
 among [-----BEGIN CERTIFICATE-----
MIIC5TCCAougAwIBAgIUApCtD3xfo9JLFyPd...
-----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
MIIC5DCCAougAwIBAgIUQ/ztvrcb3Z6LB8...
-----END CERTIFICATE-----
 -----BEGIN CERTIFICATE-----
MIIC5DCCAougAwIBAgIUSCeIphcSIWrs...
-----END CERTIFICATE-----
]

这个警告和channel ... is not serviced by me错误的位置是一样的,所以我猜这些是同一个问题。

问题似乎是无法从块的元信息中识别出我的新 TLS 签名证书。

感谢社区的一些评论,我找到了下面的链接,它似乎非常接近我的问题。

https://jira.hyperledger.org/browse/FAB-16953

然而,即使我将TLSHandshakeTimeShift设置为20s,并一一重启orderer,问题依然存在。我的环境设置如下:

docker container run -d --name $NODE \
--log-driver json-file --log-opt max-size=1g --log-opt max-file=1 \
-e FABRIC_LOGGING_SPEC=INFO \
-e ORDERER_GENERAL_LISTENADDRESS=0.0.0.0 \
-e ORDERER_GENERAL_GEnesISMETHOD=file \
-e ORDERER_GENERAL_GEnesISFILE=/artifacts/genesis.block \
-e ORDERER_GENERAL_LOCALMSPID=$MSP \
-e ORDERER_GENERAL_LOCALMSPDIR=/artifacts/msp \
-e ORDERER_GENERAL_TLS_ENABLED=true \
-e ORDERER_GENERAL_TLS_PRIVATEKEY=/artifacts/tls/keystore/key.pem \
-e ORDERER_GENERAL_TLS_CERTIFICATE=/artifacts/tls/signcerts/cert.pem \
-e "ORDERER_GENERAL_TLS_ROOTCAS=[/artifacts/tls/tlscacerts/ca-cert.pem]" \
-e ORDERER_KAFKA_TOPIC_REPLICATIONFACTOR=1 \
-e ORDERER_KAFKA_VERBOSE=true \
-e ORDERER_GENERAL_CLUSTER_CLIENTPRIVATEKEY=/artifacts/tls/keystore/key.pem \
-e ORDERER_GENERAL_CLUSTER_CLIENTCERTIFICATE=/artifacts/tls/signcerts/cert.pem \
-e "ORDERER_GENERAL_CLUSTER_ROOTCAS=[/artifacts/tls/tlscacerts/ca-cert.pem]" \
-e ORDERER_OPERATIONS_LISTENADDRESS=$NODE:8443 \
-e ORDERER_GENERAL_CLUSTER_TLSHANDSHAKETIMESHIFT=48h \
-w="/opt/gopath/src/github.com/hyperledger/fabric" \
-v "$(pwd)"/artifacts:/artifacts \
-v "$(pwd)"/blocks:/var/hyperledger/production/orderer/ \
--network $NETWORK \
hyperledger/fabric-orderer:$VERSION orderer

我在设置 TLSHANDSHAKETIMESHIFT 值时做错了吗?我仍然无法为我的问题找到任何解决方案。欢迎任何形式的帮助。谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。