!MthpOIxqJhTgrMNxDS:nixos.org

NixOS ACME / LetsEncrypt

106 Members
Another day, another cert renewal42 Servers

Load older messages


SenderMessageTime
19 Feb 2025
@hexa:lossy.networkhexaI think that would probably be fine16:49:37
@emilazy:matrix.orgemilyI don't think that's optimal – the timer-based setup is bad – but it seems to be what fits best with the existing module structure16:49:38
@sandro:supersandro.deSandro 🐧https://github.com/go-acme/lego/blob/v4.22.2/cmd/cmd_renew.go#L17616:49:50
@hexa:lossy.networkhexaI think we don't know what probable renewal intervals sent via renewalinfo would be16:49:51
@sandro:supersandro.deSandro 🐧they literally call time.Sleep 16:50:05
@hexa:lossy.networkhexasandro, please check the backlog16:50:16
@hexa:lossy.networkhexaso really, beyond a day this is just an optimization16:50:45
@emilazy:matrix.orgemily looking at cmd_renew.go it actually seems like it will force renewal if you set --ari-wait-to-renew-duration 1s and ARI says you should wait a month? 16:50:59
@emilazy:matrix.orgemily
	if ariRenewalTime == nil && !needRenewal(cert, domain, ctx.Int(flgDays)) &&
		(!forceDomains || slices.Equal(certDomains, domains)) {
		return nil
	}
16:51:08
@hexa:lossy.networkhexabut there is no harm in letting the acme client sleep and wait between timer runs16:51:14
@emilazy:matrix.orgemilythe "do nothing if renewal isn't required" is conditionalized on not processing ARI16:51:17
@emilazy:matrix.orgemily so actually --ari-wait-to-renew-duration is just a weird footgun…? 16:51:28
@emilazy:matrix.orgemily so unless I am misreading this Go, to have ARI work properly and not try to renew every single day we would actually need to give it an unlimited timeout. but that doesn't work with how non-ARI certificate renewal paths on a timer work. so lego has just bifurcated lego renew into two entirely different modalities of operation based on server capabilities and then enabled that by default. which seems terrible 16:52:43
@sandro:supersandro.deSandro 🐧https://datatracker.ietf.org/doc/draft-ietf-acme-ari/#:~:text=Retry%2DAfter%3A%2021600%0A%0A%20%20%20%7B%0A%20%20%20%20%20%22-,suggestedWindow,-%22%3A%20%7B%0A%20%20%20%20%20%20%20%22start%22%3A%20%222021%2D0116:52:52
@sandro:supersandro.deSandro 🐧it allows the acme provider to give you a window where you should renew your cert because they want to go down to shorter lived certs16:53:16
@emilazy:matrix.orgemilyI promise I do not need ARI explaining to me. I was following the ARI work years ago16:53:18
@emilazy:matrix.orgemilythis isn't helpful, the discussion is about the interface lego is providing for it16:53:28
@sandro:supersandro.deSandro 🐧I just wanted to make sure we are all on the same page, didn't know that you already know everything16:54:12
@emilazy:matrix.orgemily this is the sticking point, it doesn't seem like a low --ari-wait-to-renew-duration will actually give you a normal "poll for renewal" interface 16:54:51
@emilazy:matrix.orgemilyit will just look at the recommended renewal and go "nope that's too long" and do it early16:55:01
@emilazy:matrix.orgemily(again, based on my quick reading of the Go that could be wrong)16:55:07
@emilazy:matrix.orgemilyso it seems like we need to let it block indefinitely, which is a total inversion of how our current module works, and we can't even conditionalize on whether certs are using ARI in the Nix code because that's downstream of server-side config16:55:37
@emilazy:matrix.orgemilymaybe we can just let it wait indefinitely and the timer will only fire once?16:55:52
@emilazy:matrix.orgemilythis is why ACME really wants a long-lived daemon :(16:56:07
@hexa:lossy.networkhexasorry, I don't follow your conclusion here16:56:37
@emilazy:matrix.orgemily ok, let's say ARI is enabled, the ACME server says "renew in 2 months", but you pass --ari-wait-to-renew-duration 5m 16:57:22
@hexa:lossy.networkhexahttps://github.com/go-acme/lego/blob/v4.22.2/certificate/renewal.go16:57:49
@emilazy:matrix.orgemilyoh hmm16:57:52
@hexa:lossy.networkhexabeyond my willingless to sleep16:57:52
@hexa:lossy.networkhexaso returns nil16:58:00

Show newer messages


Back to Room ListRoom Version: 6