hyperledger / hyperledger/fabric
Fabric Orderers prevent rotation of TLS certificates
- Dominant language
- Go
- Stars
- 16.7k
- Forks
- 9.1k
- Avg merge
- 5h 38m
- Merged PRs (30d)
- 26
Description
Fabric orderers 2.2.x and 2.4.x prevent the rotation of TLS certificates in the code:
orderer/consensus/etcdraft/chain.go
```
active := c.ActiveNodes.Load().([]uint64)
if changes.UnacceptableQuorumLoss(active) {
return errors.Errorf("%d out of %d nodes are alive, configuration will result in quorum loss", len(active), len(dummyOldConsentersMap))
}
```
Processes that would require this step would include migration of a set of orderers to a new environment with a new host name.
The new hostname in the SAN will invalidate the existing TLS certs. This requires updating the TLS certs one at a time and forcing a new leader election and a new quorum on the new TLS certs.
The check added in the 2.2 stream will block the changeover.
Example. If there are 3 ordering node. When the attempt is made to update the channel on the second ordering node, this check will detect a loss of quorum and block the change.
Recommendation would be to add a orderer.yaml configuration item to allow an override for this check.
Contributor guide
Assessment
This issue has not been assessed yet.