!MthpOIxqJhTgrMNxDS:nixos.org

NixOS ACME / LetsEncrypt

107 Members
Another day, another cert renewal43 Servers

Load older messages


SenderMessageTime
17 Feb 2025
@hexa:lossy.networkhexagiven that lego is not in control about when we run it again that algorithm seems moot17:12:30
@hexa:lossy.networkhexa
   --ari-wait-to-renew-duration value        The maximum duration you're willing to sleep for a renewal time returned by the renewalInfo endpoint. (default: 0s)
17:13:24
@hexa:lossy.networkhexaso this needs to stay at 0, since we cannot deviate interactively from the timer schedule17:13:41
@emilazy:matrix.orgemilyprobably we would need to rearchitect the entire timer logic to implement LE's recommendations17:13:54
@emilazy:matrix.orgemilyit's another thing where modern ACME practices are better suited to long-running manager daemons than cron jobs17:14:11
@emilazy:matrix.orgemilywe do at least randomize enough to avoid a periodic thundering herd17:14:28
@hexa:lossy.networkhexaI think for now it would be good to just enable ARI, so lego would do early renewal, even if the cert lifetime is fine17:14:31
@hexa:lossy.networkhexa* I think for now it would be good to just enable ARI, so lego would do early renewal, even if the perceived cert lifetime is fine17:14:37
@emilazy:matrix.orgemilyyes, would be a good incremental improvement, should be harmless to do by default17:14:44
@hexa:lossy.networkhexa* I think for now it would be good to just enable ARI, so lego would do early renewal, even if the perceived cert lifetime as sufficient17:15:04
@emilazy:matrix.orgemilyif this supports sleeping until lego thinks it'd be a good time to renew even if the endpoint doesn't support ARI, then maybe we could get rid of timers entirely and just run a lego renewal process per domain17:15:25
@emilazy:matrix.orgemilyI suspect not though, in which case it would be a horrible pain to bifurcate the logic17:15:34
@hexa:lossy.networkhexa
 + lego --accept-tos --path . -d juno.lossy.network --email hexa@darmstadt.ccc.de --key-type ec384 --dns rfc2136 --server https://acme-v02.api.letsencrypt.org/directory renew --no-random-sleep --ari-enable --days 30
 2025/02/17 17:17:18 [INFO] [juno.lossy.network] acme: renewalInfo endpoint indicates that renewal is not needed
 2025/02/17 17:17:18 [juno.lossy.network] The certificate expires in 89 days, the number of days defined to perform the renewal is 30: no renewal.
17:17:42
@hexa:lossy.networkhexahttps://github.com/go-acme/lego/blob/master/cmd/cmd_renew.go#L17517:18:36
@hexa:lossy.networkhexaso we could pass a willingness to sleep 23h59m for example17:19:06
@hexa:lossy.networkhexa* so we could pass a willingness to sleep 23h for example17:19:13
@hexa:lossy.networkhexaand lego wouid apparently wait sleeping17:19:38
@hexa:lossy.networkhexa
      extraLegoRenewFlags = [
        # https://datatracker.ietf.org/doc/draft-ietf-acme-ari/
        "--ari-enable"
        "--ari-wait-to-renew-duration=${toString (86400 - 3600)}s" # 23h
      ];
17:33:19
@emilazy:matrix.orgemilyyeah, but what if your ACME provider doesn't support ARI?18:52:09
@emilazy:matrix.orgemily I think we'd want an unlimited --ari-wait-to-renew-duration in theory, but if it's just going to exit out immediately if ARI isn't present then we can't get rid of the timer 18:53:06
@hexa:lossy.networkhexa
In reply to @emilazy:matrix.org
yeah, but what if your ACME provider doesn't support ARI?
Then nothing happens
23:20:04
18 Feb 2025
@sandro:supersandro.deSandro 🐧FYI https://github.com/NixOS/nixpkgs/pull/38286316:52:15
19 Feb 2025
@hexa:lossy.networkhexahttps://github.com/go-acme/lego/commit/98371c4695dd4e45d7458d8ba42272f6fa0c625d enables ARI by default16:41:06
@hexa:lossy.networkhexain 4.20.216:41:09
@hexa:lossy.networkhexaso we just need to agree on the proper wait duration16:41:26
@sandro:supersandro.deSandro 🐧 I have extraLegoRenewFlags = [ "--ari-enable" "--ari-wait-to-renew-duration" "5m" ]; in my config but I cannot tell you any advtanatages/disavtanages of it sadly 16:44:34
@hexa:lossy.networkhexa5m is not a reasonable wait duration 😄 16:44:47
@emilazy:matrix.orgemily I think we don't want to limit it at all if we're using ARI. the ACME server will pick the appropriate time to wait. but I'm still not clear on how it's meant to integrate into our timer system. my understanding is that lego renew won't block indefinitely when not using ARI, but does block when using it? 16:44:47
@hexa:lossy.networkhexayep16:45:05
@emilazy:matrix.orgemilythe two modalities seem totally different: one is a ~non-blocking poll on a timer, the other is a long-running waiting daemon16:45:16

Show newer messages


Back to Room ListRoom Version: 6