!MthpOIxqJhTgrMNxDS:nixos.org

NixOS ACME / LetsEncrypt

105 Members
Another day, another cert renewal43 Servers

Load older messages


SenderMessageTime
10 Jan 2022
@m1cr0man:m1cr0man.comm1cr0man
In reply to @winterqt:nixos.dev
Not a bad idea
~~RFC time?~~
painful effort noises
20:46:45
@hexa:lossy.networkhexaI think we need to talk about maintainer expectations first20:47:17
@winterqt:nixos.devWinter (she/her)What maintainers are you talking about specifically?20:57:54
@winterqt:nixos.devWinter (she/her)Like, module maintainers, nixpkgs commiters?20:58:03
@hexa:lossy.networkhexapackage, module and test maintainers 21:02:27
@hexa:lossy.networkhexabasically committing to something and saying when you can no longer fulfill that committment21:02:58
@winterqt:nixos.devWinter (she/her)ah21:28:11
20 Jan 2022
@andi:kack.itandi- left the room.08:30:51
24 Jan 2022
@m1cr0man:m1cr0man.comm1cr0man Wrt https://github.com/NixOS/nixpkgs/pull/156562 is this a concern? Warning: a test defined in passthru.tests did not pass The passthru test is the acme test. 20:38:04
@hexa:lossy.networkhexathey were built by ofborg20:39:18
@hexa:lossy.networkhexahttps://github.com/NixOS/nixpkgs/runs/492583159320:39:35
@hexa:lossy.networkhexahttps://github.com/NixOS/nixpkgs/runs/492585819020:39:45
@m1cr0man:m1cr0man.comm1cr0manah awesome ok :) 20:41:39
@winterqt:nixos.devWinter (she/her)I wonder why r-ryantm failed but not OfBorg 🤔20:59:30
@m1cr0man:m1cr0man.comm1cr0manIf it's acme test pseudo-randomness, I was really under the impression I had fixed all that 😢21:01:46
27 Jan 2022
@m1cr0man:m1cr0man.comm1cr0manSo I hear LE is about to nuke some certs. https://www.theregister.com/2022/01/26/lets_encrypt_certificates/ this shouldn't affect most NixOS users since you'd have to really get into the weeds to configure TLS-ALPN-01 validation12:41:26
31 Jan 2022
@winterqt:nixos.devWinter (she/her) in renewService, why is network-online.target in wants and after, but network.target isn't in wants (but is in after)? 03:22:33
@winterqt:nixos.devWinter (she/her)any reason?03:22:36
@arianvp:matrix.orgArianThere is no point in actively pulling in network.target. see https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/10:05:42
@arianvp:matrix.orgArianBut we can probably remove the network.target altogether if network-online.target is used10:06:30
2 Mar 2022
@iclanzan:matrix.orgiclanzan

I’ve upgraded NixOS to a recent commit from unstable and ACME is not working anymore. All I see in the logs is:

Failed to start Renew ACME certificate for example.com.
acme-example.com.service: Failed to load environment files: No such file or directory
acme-example.com.service: Failed to run 'start' task: No such file or directory
acme-example.com.service: Failed with result 'resources'.

over and over again. (I replaced my actual domain with example.com)
I am using the cloudflare DNS challenge .

Does anyone have any pointers as to how I could debug this?

01:01:25
@hexa:lossy.networkhexastart looking at the systemd unit09:33:15
@hexa:lossy.networkhexalook for what paths are actually missing09:33:26
4 Mar 2022
@winterqt:nixos.devWinter (she/her)

m1cr0man: so do you remember #153942? i didn't notice it at the time but the issue that it solved may be able to be made redundant.

https://github.com/NixOS/nixpkgs/commit/81a67a3353b09c0abade5f2d17e91d23873fc7fb added SupplementalGroups=acme if ACME certs are used to the Caddy service, which gives the Caddy service access to the certs mo matter what group the Caddy service user is a part of. (In fact, I think my assertions made it so you'd have to add the acme group to the caddy user, even if it would work fine without it due to SupplementalGroups, whoops.)

I think we can make this change across the board, and (potentially) remove the assertions? Let me know what you think.

19:34:56
5 Mar 2022
@m1cr0man:m1cr0man.comm1cr0man

Heyo 👋 Sorry got distracted and forgot to reply earlier. Heading off but I'll read any replies tomorrow.

Yeah this is interesting. SupplementalGroups certainly would raise false alarms with the assertion the way it is. When you say make the change across the board, what are you thinking of doing?

I'm also thinking that depending on your plans here that assuming the cert's group is acme wouldn't be sufficient and you'd want to rely on config.security.acme.certs.<name>.group in dependant services.

00:43:44
@winterqt:nixos.devWinter (she/her)

When you say make the change across the board, what are you thinking of doing?

Migrating all web servers that we support to use it instead of the assertions, ideally.

02:48:20
@m1cr0man:m1cr0man.comm1cr0man

Yeah honestly I think that would be a good idea :) There will be some things to note however.

Firstly, we have weak values for group set on a cert used by nginx/httpd (example:
https://github.com/m1cr0man/nixpkgs/blob/674cfc91c7432662fc8ab96a6d17819f5517ddb8/nixos/modules/services/web-servers/nginx/default.nix#L967). It _might_ be necessary to check that the user/group for the web server isn't already in the cert's group, however knowing Systemd if you specify SupplementalGroups the user already has it'll probably no-op and be grand.

Secondly there was in the past some concern raised around granting acme group to other services because it would grant that service access to more certs than you may want. You might get some backlash in that regard. In reality, this is hard to operate around and for wildcard certs you're likely to only have 1 cert shared across multiple services anyway.

Lastly there was still some cases where people/services wanted root as the owner and before the useRoot option was added to acme, LoadCredential was the only solution here: https://github.com/NixOS/nixpkgs/pull/123261 (WOW just noticed this hasn't been merged). I bring this up because LoadCredential would also be a valid solution instead of SupplementalGroups, but because credentials are not re-read from disk when they change which is bad for ACME usage, I don't think it's preferred.

14:45:35
@m1cr0man:m1cr0man.comm1cr0manPoint 2 is really why your assertion was acceptable in the first place. We're letting users know that the permissions are incorrect and they have to decide how to solve it, rather than us just blanket-granting access to certs which may or may not be what the user expects14:46:52
@winterqt:nixos.devWinter (she/her)

Riiight, completely forgot about that.

I think the best thing to do here is to revisit how the Caddy module operates in this regard -- so removing the blanket "acme" group addition. (Since I'm not sure the best way to do this, would it be appropriate to open an issue to discuss it with the module maintainer?)

17:36:06
@m1cr0man:m1cr0man.comm1cr0manYeah that's probably best, and so that it's on record on Github too17:44:17

Show newer messages


Back to Room ListRoom Version: 6