Skip to content

Ship the staging root in the acme CA secret for letsencrypt-staging - #1335

Merged
ArnobKumarSaha merged 1 commit into
masterfrom
arnob-acme-stg
Sep 13, 2026
Merged

ArnobKumarSaha merged 1 commit into
masterfrom
arnob-acme-stg

Conversation

@ArnobKumarSaha

Copy link
Copy Markdown
Member

charts/ace/templates/gateway/acme-ca.yaml is selected as caCertificateRefs for both letsencrypt and letsencrypt-staging (charts/ace/templates/gateway/route-nats.yaml:56-66), but its ca.crt hardcoded a single certificate. Decoded, that is the production root:

subject=C=US, O=Internet Security Research Group, CN=ISRG Root X1
sha256 Fingerprint=96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6

Staging certificates chain to a different, deliberately untrusted root — "(STAGING) Pretend Pear X1" (https://letsencrypt.org/docs/staging-environment/) — so on a letsencrypt-staging install Envoy was handed a CA that cannot validate the backend, and the BackendTLSPolicy could never succeed.

The secret now carries the matching root for the issuer in use. The PEM is https://letsencrypt.org/certs/staging/letsencrypt-stg-root-x1.pem verbatim. Nothing on the consuming side changes — the secret name is the same, so route-nats.yaml and the s3proxy policy in #1334 pick it up as-is.

Verification

Rendered the template with each issuer and piped the resulting ca.crt through openssl x509:

global.infra.tls.issuer rendered ca.crt
letsencrypt ISRG Root X1, 96:BC:EC:06…
letsencrypt-staging (STAGING) Pretend Pear X1, E7:05:70:A9…
ca secret not rendered (gate at line 1-3 unchanged)

Scope

This affects nats today — unlike the s3proxy policy in #1334, route-nats.yaml renders on every gateway install. It only bites deployments running against the staging ACME endpoint.

The secret hardcoded ISRG Root X1, the production root, while being
selected for letsencrypt-staging too. Staging certificates chain to
(STAGING) Pretend Pear X1, so BackendTLSPolicy validation against this
secret could never succeed on a staging install.

Signed-off-by: Arnob Kumar Saha <arnob@appscode.com>
@ArnobKumarSaha
ArnobKumarSaha merged commit 8284e38 into master Sep 13, 2026
3 of 4 checks passed
@ArnobKumarSaha
ArnobKumarSaha deleted the arnob-acme-stg branch September 13, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant