In internal/atunnel/server.go the client CA pool is built once at startup, while leaf certificates are reloaded per connection. Because substrate certs expire within ~1–2 days, a frozen CA pool means the server will eventually reject valid peers (or keep trusting a rotated-out CA) until it restarts.
Implement tls.Config.GetConfigForClient so the client CA pool is re-read on each handshake, mirroring the existing per-connection leaf cert reload.
source: #559 (comment)
In
internal/atunnel/server.gothe client CA pool is built once at startup, while leaf certificates are reloaded per connection. Because substrate certs expire within ~1–2 days, a frozen CA pool means the server will eventually reject valid peers (or keep trusting a rotated-out CA) until it restarts.Implement tls.Config.GetConfigForClient so the client CA pool is re-read on each handshake, mirroring the existing per-connection leaf cert reload.
source: #559 (comment)