到期后 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 (将#修改为@)