Trusting Cloudflare Origin CA Certificates in Coder on Kubernetes

Last updated: June 25, 2026

Applies to: Coder deployed on Kubernetes using Cloudflare Origin CA certificates

Summary

When deploying Coder on Kubernetes behind Cloudflare with Origin CA certificates, you may encounter health check errors:

EACSO3: get healthz endpoint: Get "https://your-coder-domain.com/healthz": tls: failed to verify certificate: x509: certificate signed by unknown authority

This occurs because Cloudflare Origin CA is not a publicly trusted CA. Unlike DigiCert or Let's Encrypt, the Cloudflare Origin CA root must be explicitly added to your trust store.

Cloudflare Origin CA Root Certificates

Download the appropriate root certificate for your key type:

Solution: Use Helm coder.certs (Recommended)

The Coder Helm chart provides coder.certs to mount CA certificates into the pod:

  1. Download and create a Kubernetes secret:
    curl -fsSL https://developers.cloudflare.com/ssl/static/origin_ca_rsa_root.pem -o cf-origin-root.pem
    kubectl create secret generic cloudflare-origin-ca --from-file=cf-origin-root.pem
  2. Configure Helm values:
    coder:
      certs:
        secrets:
          - name: cloudflare-origin-ca
            key: cf-origin-root.pem

Verification

Verify your certificate against the Cloudflare Origin CA:

openssl verify -CAfile cf-origin-root.pem your-cert.pem
# Expected output: your-cert.pem: OK

VS Code Certificate Errors

If VS Code shows "Unable to verify the first certificate" when connecting to workspaces, see Error: VS Code Extension "Unable to Verify the First Certificate" for detailed guidance on NODE_EXTRA_CA_CERTS and template configuration.

Related Resources