!MthpOIxqJhTgrMNxDS:nixos.org

NixOS ACME / LetsEncrypt

86 Members
Another day, another cert renewal39 Servers

Load older messages


SenderMessageTime
13 Jun 2023
@m1cr0man:m1cr0man.comm1cr0manOh also as for my stance on lego... I don't totally hate it, I mean it works for small and medium scale deployments, but I do agree that there could be a better solution out there that is simpler for us to implement. I'm just not convinced it's worth passing the pain to the module users yet.20:50:54
@emilazy:matrix.orgemilythey are compiled in and it runs into Go module hash issues :P we have an open issue in nixpkgs for making that nicer for web server cases but I think it's basically going to come down to "call some derivation, pass in the modules you need, fill in a hash". obviously we can't provide an upstream hash for every combination of DNS providers people could use so in that case we should probably just provide a prebuilt package that bundles them all.20:53:29
@m1cr0man:m1cr0man.comm1cr0manoh I see right20:53:55
@emilazy:matrix.orgemily (it's literally just "they have a tool that fills out a Go file with all the package imports you list and a main that just calls into Caddy's main and compiles and runs that", so you can also just supply your own main.go) 20:54:01
@emilazy:matrix.orgemilyI do think that if we do any migration we should have a structured interface for DNS providers and name the escape hatch for unsupported ones something like customDnsProviderSettingsThisWillBreakHereBeDragonsNoWarranty :V20:55:05
@emilazy:matrix.orgemilybut it will be annoying to support them all (actually we could probably generate them automatically since Caddy already has a standardized structured configuration interface that all the providers declare their setting names/types with but that's its own bikeshed)20:55:28
@m1cr0man:m1cr0man.comm1cr0manI was thinking/hoping we could generate them yeah :) 20:55:44
@emilazy:matrix.orgemily
In reply to @emilazy:matrix.org
(in terms of "ACME quality of implementation and best operational practices" I think Caddy has very few competitors and would solve a lot of our problems; we can start up a single long-running daemon and get rid of basically all our gross shell logic. but it's not all sunshine and roses; for one thing, using DNS providers would require us to have a story for Caddy modules (though we could probably just build a mega-ACME-Caddy with all the first-party providers out of the box), and also you can certainly do better in terms of hardening (Go is memory safe, but AFAIK there's no privilege separation going on: it's possible that exploits could leak private key material through confused deputy or Go runtime exploits))
(another caveat is no multiple-SAN certificates which I forget if we even support and are not considered best practice (cf. https://github.com/https-dev/docs/blob/a00aed0ec4a6e7963fde33aeda725209bfa4a89d/acme-ops.md#use-one-name-per-certificate from the developers). but if we do support them I'm sure somebody is using them.)
20:59:39
@m1cr0man:m1cr0man.comm1cr0manoh, no we use SANs quite a bit. extraDomainNames puts them all in as SANs effectively. For example nginx does it by default https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/services/web-servers/nginx/default.nix#L129321:15:50
@k900:conduit.0upti.meK900 (deprecated) joined the room.21:36:39
@emilazy:matrix.orgemilywe should probably consider not doing it by default :)21:50:27
@emilazy:matrix.orgemilybut that's another matter21:50:30
15 Jun 2023
@k900:conduit.0upti.meK900 (deprecated)https://hydra.nixos.org/build/22421820513:16:42
@k900:conduit.0upti.meK900 (deprecated)Test failed again13:16:44
@k900:conduit.0upti.meK900 (deprecated)Not restarting cause there's multiple evals queued after that already13:17:03
@hexa:lossy.networkhexa

Test "Can request certificate with Lego's built in web server" failed with error: "unit "acme-finished-http.example.test.target" is inactive and there are no pending jobs"

13:26:26
@hexa:lossy.networkhexa
In reply to @hexa:lossy.network

Test "Can request certificate with Lego's built in web server" failed with error: "unit "acme-finished-http.example.test.target" is inactive and there are no pending jobs"

same as here 🥳
13:26:38
@hexa:lossy.networkhexasaved to https://gist.github.com/mweinelt/0bf207904ea0a32e30f0aadd3e0b1bba13:27:07
@mon:tchncs.deribosomerocker joined the room.16:40:24
19 Jun 2023
@arianvp:matrix.orgArianhttps://github.com/systemd/systemd/issues/2807510:43:36
@emilazy:matrix.orgemilyheh, convenient10:56:36
@raitobezarius:matrix.orgraitobezariussystemd folks seemed more interested to implement this via implementing service limits on a slice13:02:23
@emilazy:matrix.orgemilyon the issue or through your own communication with systemd people?13:10:33
@emilazy:matrix.orgemilyI think on the issue we were just pushing back on "more bespoke complexity in the service scripts" by all means necessary :p13:10:49
@raitobezarius:matrix.orgraitobezariuson the systemd dev chat13:12:04
@raitobezarius:matrix.orgraitobezariuss/systemd folks/poettering13:12:24
@emilazy:matrix.orgemilyright13:22:29
@emilazy:matrix.orgemily
In reply to @m1cr0man:m1cr0man.com

okay yeah, so these are pretty lenient for most people. I think I was only concerned about the concurrent one that the ticket opener mentioned:

the “new-nonce”, “new-account”, “new-order”, and “revoke-cert” endpoints on the API have an Overall Requests limit of 20 per second.

Right now this one is very easy to do

tbh given ^ and the other limits we discussed at that time, some kind of time-based limits might be what we'd really want
13:23:05
@emilazy:matrix.orgemily"N instances of this service per X period of time"13:23:17
@emilazy:matrix.orgemilyi'm guessing systemd probably wouldn't go for that though13:23:22

Show newer messages


Back to Room ListRoom Version: 6