NGINX adds native support for ACME protocol
NGINX has announced the preview release of the nginx-acme module, which adds native support to NGINX for the Automatic Certificate Management Environment (ACME) protocol:
NGINX's native support for ACME brings a variety of benefits that simplify and enhance the overall SSL/TLS certificate management process. Being able to configure ACME directly using NGINX directives drastically reduces manual errors and eliminates much of the ongoing overhead traditionally associated with managing SSL/TLS certificates. It also reduces reliance on external tools like Certbot, creating a more secure and streamlined workflow with fewer vulnerabilities and a smaller attack surface.
Posted Aug 13, 2025 18:35 UTC (Wed)
by smurf (subscriber, #17840)
[Link] (10 responses)
But maybe that's just me.
Posted Aug 13, 2025 19:20 UTC (Wed)
by HenrikH (subscriber, #31152)
[Link] (9 responses)
Posted Aug 13, 2025 19:44 UTC (Wed)
by NYKevin (subscriber, #129325)
[Link]
In most situations, there would also be the question of whether it's a good idea to add a bunch of parsing code to the HTTP server's codebase. But ACME takes place over TLS, and your counterparty is authenticated before the ACME code even runs. If you don't trust the same CA that is issuing your certificate in the first place, then you have far larger problems than a little extra parsing code.
Posted Aug 14, 2025 0:08 UTC (Thu)
by alp (subscriber, #136414)
[Link] (7 responses)
Posted Aug 14, 2025 6:23 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (6 responses)
Posted Aug 14, 2025 10:37 UTC (Thu)
by tialaramex (subscriber, #21167)
[Link] (5 responses)
Also you could do something like RFC 9345 "Delegated Credentials", there the idea is you get a certificate but the signatures from the certified key are used to delegate a further credential, so maybe you make one delegation every 30 minutes, and the delegated credential is only good for an hour, but clearly a hardware HSM can keep up with that rate even if the web server is using that credential millions of times per second. Stealing a delegated credential that you can use for at most one hour isn't good, but it's extremely time limited, if you have an attack for this in the morning but I fix it at lunch time then everything is fine before closing.
There are practical problems today but nothing which can't be addressed. RFC 9345 points out that clock skew is an issue, a lot of machines will be wrong by exactly one hour due to "Daylight saving" nonsense and others won't have accurate clocks, humans tend to treat 5-10 minutes as acceptable unless they're weird like me. In some applications you don't care - you can guarantee accurate clocks in intended clients, but general web serving won't be one of those.
Posted Aug 14, 2025 15:12 UTC (Thu)
by smurf (subscriber, #17840)
[Link]
Certificate expiry is using UTC. The same is true (or should be true) for your local clock if the UI's time zone is set correctly.
So the people who fudge with their clocks instead of adjusting the timezone will learn to do this they way they should be doing it. *shrug*
Posted Aug 14, 2025 17:51 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
Even for software-based HSMs the PKCS interface is not scalable. It's typically implemented with a big lock around the storage, essentially limiting it to a single thread.
> Also you could do something like RFC 9345 "Delegated Credentials", there the idea is you get a certificate but the signatures from the certified key are used to delegate a further credential, so maybe you make one delegation every 30 minutes
Another option is to use constrained intermediary CAs, but neither them, nor delegated credentials are widely supported.
Posted Aug 14, 2025 22:57 UTC (Thu)
by alp (subscriber, #136414)
[Link]
Posted Aug 16, 2025 0:04 UTC (Sat)
by jdulaney (subscriber, #83672)
[Link] (1 responses)
Posted Aug 16, 2025 2:36 UTC (Sat)
by Cyberax (✭ supporter ✭, #52523)
[Link]
(I found an AccuBeat rubidium frequency standard on eBay for cheap and couldn't hold myself back from buying it)
Posted Aug 13, 2025 20:07 UTC (Wed)
by stephane (subscriber, #57867)
[Link] (4 responses)
The integration of SSL/TLS certificate management in Caddy is just fantastic, and so is everything else!
Posted Aug 13, 2025 21:44 UTC (Wed)
by aszs (subscriber, #50252)
[Link] (3 responses)
Posted Aug 14, 2025 6:47 UTC (Thu)
by NYKevin (subscriber, #129325)
[Link] (1 responses)
Unfortunately, NGINX does not (yet) support that, so you pretty much have to use Certbot or something resembling it.
Posted Aug 14, 2025 12:19 UTC (Thu)
by aszs (subscriber, #50252)
[Link]
Posted Aug 14, 2025 18:13 UTC (Thu)
by rbtree (guest, #129790)
[Link]
Posted Aug 13, 2025 20:58 UTC (Wed)
by bbolli (guest, #19153)
[Link]
Posted Aug 14, 2025 2:03 UTC (Thu)
by witurnpled (subscriber, #156452)
[Link] (4 responses)
Conceptually, why implement a "half" ACME client directly into the web server rather than let a full ACME implementation properly instrument NGINX for one of its challenge types. I don't see the advantage of the tight integration with the one challenge type here unless one is 1.) exclusively doing HTTP challenges and 2.) somehow does not trust the certbot/lego/... to properly setup NGINX?
Also, one mixes the responsibilities/concerns of the web server with TLS key management.
Posted Aug 14, 2025 12:38 UTC (Thu)
by iabervon (subscriber, #722)
[Link]
Of course, none of this makes sense if you want a keypair used by multiple programs for different services, such that there's no single program that terminates TLS for all connections, but that's only one of the two common use cases.
Posted Aug 15, 2025 15:02 UTC (Fri)
by ttuttle (subscriber, #51118)
[Link] (1 responses)
Posted Aug 15, 2025 15:13 UTC (Fri)
by farnz (subscriber, #17727)
[Link]
Posted Aug 19, 2025 3:53 UTC (Tue)
by WolfWings (subscriber, #56790)
[Link]
DNS-01 is require for wildcard certificates which is a common need, it's entirely standalone and detached from your webserver configuration, and it broadly needs to integrate to whatever proprietary API for TXT records your DNS registrar of choice uses; so as a result there's a lot of registrar-specific ACME clients. Are all those only 'half' an ACME client since they don't support HTTP-01 challenges?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
"Smaller attack surface"?
NGINX and certificate management
NGINX and certificate management
NGINX and certificate management
NGINX and certificate management
NGINX and certificate management
HAProxy too
Why a half ACME client?
Why a half ACME client?
Why a half ACME client?
Both CA and user decide what challenge to use; the CA offers support for various challenge types (with differing certificate issuance rules for each type - for example, a wildcard cert from LetsEncrypt needs a DNS challenge), the user selects one to use.
Why a half ACME client?
Why a half ACME client?