You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(dstack-ingress): make ACME_STAGING work in both modes, not just tls-alpn-01
ACME_STAGING was read only on the tls-alpn-01 path. Under dns-01 nothing
looked at it -- certman.py and functions.sh both read CERTBOT_STAGING --
so setting it there silently issued *production* certificates. The README
did not mark it mode-specific, so there was nothing to warn you.
Same shape as the RENEW_DAYS_BEFORE bug, and worse in effect: instead of
a knob that does nothing, this one does the opposite of what it says on a
path where the mistake costs a real certificate and real rate limit.
Normalise both names once in entrypoint.sh and export them. This does
belong there, unlike the wildcard rule: an ACME account and a staging
toggle are genuinely shared by both modes, which is exactly what that
file validates. The per-mode copies in dns01.sh and tlsalpn.sh are gone.
Name them after ACME rather than certbot throughout. What you configure
is an ACME account; which client implements a mode is an implementation
detail, and this image already changed it once. CERTBOT_EMAIL and
CERTBOT_STAGING keep working -- they are the historical names, not the
preferred ones, and the README no longer implies the preference depends
on the mode.
Also fixes the webhook example, which showed the payload's keys in an
order the code does not emit (it sorts them), and drops a stale duplicate
comment on ensure_placeholder_certs that credited certbot with forwarding
the tls-alpn-01 challenge.
| `CERTBOT_EMAIL` | *(optional)* ACME contact address. `ACME_EMAIL` is accepted too, and is the preferred name in tls-alpn-01 mode |
162
+
| `ACME_EMAIL` | *(optional)* ACME contact address, in either mode. `CERTBOT_EMAIL` is the historical name and still works. See below — it is optional, and published |
163
163
| `DNS_PROVIDER` | DNS provider (`cloudflare`, `linode`, `namecheap`) |
164
164
165
165
### Optional
@@ -171,8 +171,7 @@ environment:
171
171
| `ROUTING_MAP` | | Multi-domain routing: `domain=host:port`per line |
172
172
| `SET_CAA` | `false` | Enable CAA DNS record (dns-01 only; tls-alpn-01 cannot write DNS) |
173
173
| `TXT_PREFIX` | `_dstack-app-address` | DNS TXT record prefix |
174
-
| `CERTBOT_STAGING` | `false` | Use Let's Encrypt staging server. `ACME_STAGING` is the preferred name in tls-alpn-01 mode |
175
-
| `ACME_EMAIL` | | ACME contact address, in either mode. Falls back to `CERTBOT_EMAIL`. Optional — see below |
174
+
| `ACME_STAGING` | `false` | Use Let's Encrypt staging, in either mode. `CERTBOT_STAGING` is the historical name and still works |
176
175
| `CHALLENGE_TYPE` | `dns-01` | `dns-01` (certbot + DNS credentials) or `tls-alpn-01` (lego, no DNS credentials) |
177
176
| `DNS_SETUP_MODE` | `wait` | tls-alpn-01 only: `wait`, `print` or `webhook` — see below |
178
177
| `DNS_SETUP_TIMEOUT` | `1800` | tls-alpn-01 only: seconds to wait for the records to appear |
@@ -345,7 +344,7 @@ Encrypt dropping expiry mail, and the container passes it for you.
0 commit comments