hyperledger / hyperledger/fabric

Fabric Orderers prevent rotation of TLS certificates

Open
#4,049 5 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.