Local certificates
Pyahu does not use a public CA for .localhost. The CLI generates a local CA, creates a certificate for localhost and *.localhost, and writes the TLS pair to the Kubernetes Secret pyahu-local-tls.
The *.localhost wildcard covers all HTTP UIs behind Traefik
(zitadel.localhost, kafka-ui.localhost, rabbitmq.localhost), so trusting the
CA once covers them all. Plain localhost is listed separately, because the
wildcard does not match the host without a subdomain.
Status
Section titled “Status”pyahu certs statusExpected example after trusting the CA:
local CA: ~/Library/Application Support/pyahu/certs/ca.crtCA status: valid until 2036-06-19host trust: trustedcertificate: .pyahu/local/certs/localhost.crtcert status: valid until 2027-07-24domains: *.localhost, localhostTrust the CA on the host
Section titled “Trust the CA on the host”pyahu certs trustOn macOS, the command uses the system trust store and may ask for a password. After that, curl and browsers such as Safari/Chrome should accept https://zitadel.localhost.
curl https://zitadel.localhost/debug/healthzExpected response:
okRotate
Section titled “Rotate”pyahu certs rotatepyahu certs trustpyahu upAfter rotation, run pyahu up to update the TLS Secret in the cluster.
Local paths
Section titled “Local paths”| Item | Linux | macOS |
|---|---|---|
| Local CA | ~/.config/pyahu/certs | ~/Library/Application Support/pyahu/certs |
| Project certificate | .pyahu/local/certs | .pyahu/local/certs |