Renewal works locally; fails once traffic goes through a proxy/CDN.
The ACME challenge path is being redirected, blocked, or answered by the wrong layer.
location /.well-known/acme-challenge/ { proxy_pass http://origin; }# no http->https redirect for /.well-known/acme-challengecertbot certonly --preferred-challenges dns --manualDry-run renewals after ANY proxy change.
Spinning up a fresh box to reproduce or escape this error?
Managed cloud hostingNinjaOps publishes free engineering guides. Some outbound links are affiliate links: they cost you nothing and support the site.
Last reviewed 2026-10-02 · NinjaOps SEO grid · DevOps blog