Mutual TLS
Mutual TLS authentication between nodes
Configuration
func startSecureNode(name string) (gen.Node, error) {
// Load node certificate (signed by cluster CA)
cert, err := tls.LoadX509KeyPair(
fmt.Sprintf("%s.pem", name),
fmt.Sprintf("%s-key.pem", name),
)
if err != nil {
return nil, err
}
// Load cluster CA
caCert, err := os.ReadFile("cluster-ca.pem")
if err != nil {
return nil, err
}
caPool := x509.NewCertPool()
caPool.AppendCertsFromPEM(caCert)
certManager := gen.CreateCertAuthManager(cert)
certManager.SetClientCAs(caPool) // verify incoming
certManager.SetClientAuth(tls.RequireAndVerifyClientCert) // require client cert
certManager.SetRootCAs(caPool) // verify outgoing
return ergo.StartNode(gen.Atom(name), gen.NodeOptions{
CertManager: certManager,
})
}CertAuthManager
Setting
Purpose
Value
Behavior
Setting
Purpose
Runtime Certificate Rotation
Troubleshooting
Last updated
Was this helpful?