I'm getting somewhere now but also hitting an error with the certificates
I followed the guide on creating the certs but after adding a 2nd cluster member on the first cluster node, I got this error
ziti-controller-1 | {"error":"error dialing peer tls:ziti-controller3.wizznet.co.uk:1280: tls: failed to verify certificate: x509: certificate signed by unknown authority","file":"github.com/hashicorp/raft@v1.7.3/raft.go","func":"github.com/hashicorp/raft.(*Raft).preElectSelf.(*Raft).preElectSelf.func1.func2","level":"error","msg":"failed to make requestVote RPC","target":{"Suffrage":0,"ID":"ziti-controller3","Address":"tls:ziti-controller3.wizznet.co.uk:1280"},"term":5,"time":"2025-06-01T17:00:27.034Z"}
Also the cluster instantly implodes and I see that it has no_leader anymore so I have remove the raft directory and start again as all cluster commands start failing.
I'm referencing in the config like this:
First controller (initial controller) ziti-controller1
[root]# cat config.yml
v: 3
#trace:
# path: "ziti-controller.wizznet.co.uk.trace"
#profile:
# memory:
# path: ctrl.memprof
db: "/ziti-controller/bbolt.db"
# uncomment and configure to enable HA
cluster:
dataDir: "/ziti-controller/raft"
identity:
cert: "pki/ziti-controller1/certs/client.cert"
server_cert: "pki/ziti-controller1/certs/server.cert"
key: "pki/ziti-controller1/keys/server.key"
ca: "pki/ca/certs/ca.cert"
2nd controller (ziti-controller3) (sorry for the confusing numbering)
v: 3
#trace:
# path: "ziti-controller.wizznet.co.uk.trace"
#profile:
# memory:
# path: ctrl.memprof
db: "/ziti-controller/bbolt.db"
# uncomment and configure to enable HA
cluster:
dataDir: "/ziti-controller/raft"
identity:
cert: "pki/ziti-controller3/certs/client.cert"
server_cert: "pki/ziti-controller3/certs/server.cert"
key: "pki/ziti-controller3/keys/server.key"
ca: "pki/ca/certs/ca.cert"
#alt_server_certs:
# - server_cert: ""
# server_key: "
and the file structure
procedures I used to create certs:
# Create the trust root, a self-signed CA
ziti pki create ca --trust-domain wizznet.co.uk --pki-root ./pki --ca-file ca --ca-name 'Wizznet Root CA'
# Create the controller 1 intermediate/signing cert
ziti pki create intermediate --pki-root ./pki --ca-name ca --intermediate-file ziti-controller1 --intermediate-name 'Controller One Signing Cert'
# Create the controller 1 server cert
ziti pki create server --pki-root ./pki --ca-name ziti-controller1 --dns "localhost,ziti-controller1,ziti-controller1.wizznet.co.uk" --ip "127.0.0.1,::1,10.60.0.120" --server-name ziti-controller1 --spiffe-id 'controller/ziti-controller1'
# Create the controller 1 server cert
ziti pki create client --pki-root ./pki --ca-name ziti-controller1 --client-name ziti-controller1 --spiffe-id 'controller/ziti-controller1'
# Create the controller 2 intermediate/signing cert
ziti pki create intermediate --pki-root ./pki --ca-name ca --intermediate-file ziti-controller2 --intermediate-name 'Controller Two Signing Cert'
# Create the controller 2 server cert
ziti pki create server --pki-root ./pki --ca-name ziti-controller2 --dns "localhost,ziti-controller2,ziti-controller2.wizznet.co.uk" --ip "127.0.0.1,::1,10.60.0.174" --server-name ziti-controller2 --spiffe-id 'controller/ziti-controller2'
# Create the controller 2 client cert
ziti pki create client --pki-root ./pki --ca-name ziti-controller2 --client-name ziti-controller2 --spiffe-id 'controller/ziti-controller2'
# Create the controller 3 intermediate/signing cert
ziti pki create intermediate --pki-root ./pki --ca-name ca --intermediate-file ziti-controller3 --intermediate-name 'Controller Three Signing Cert'
# Create the controller 3 server cert
ziti pki create server --pki-root ./pki --ca-name ziti-controller3 --dns "localhost,ziti-controller3,ziti-controller3.wizznet.co.uk" --ip "127.0.0.1,::1,10.60.0.12" --server-name ziti-controller3 --spiffe-id 'controller/ziti-controller3'
# Create the controller 3 client cert
ziti pki create client --pki-root ./pki --ca-name ziti-controller3 --client-name ziti-controller3 --spiffe-id 'controller/ziti-controller3'
Thanks!
Jon