Skip to content

Add ARI support to getssl#894

Open
kenh wants to merge 1 commit into
srvrco:masterfrom
kenh:ari-support
Open

Add ARI support to getssl#894
kenh wants to merge 1 commit into
srvrco:masterfrom
kenh:ari-support

Conversation

@kenh
Copy link
Copy Markdown

@kenh kenh commented Apr 10, 2026

This is a patch implementing ARI (RFC9773) support for getssl. I will admit that I haven't actually tested it yet with a certificate within the ARI renewal window; the shortlived certificate I got will enter the renewal window tomorrow so I will test it then, but I wanted to get some preliminary feedback regarding style, any suggestions for code changes, etc etc. I took a guess at the busybox support for the date command. I am not convinced the logic about using ARI support when you also set RENEW_ALLOW is correct; I welcome any improvements there.

As a side note I saw that profile support was added (yay!) but I am not convinced that you are supposed to pick the first profile in the list provided by the server if the client doesn't specify one. My reading of the I-D is that if you want to take the 'default' you should omit the profile completely and let the server decide. It's entirely possible I am wrong.

@kenh
Copy link
Copy Markdown
Author

kenh commented Apr 14, 2026

I've tested this with a certificate that had passed the ARI window, and it worked fine. Unfortunately it wasn't WITHIN the ARI window (because it was in the middle of the night and I couldn't stay up that late on that day), but I checked the boulder source code and boulder will reject a order with a invalid "replaces" element so I feel confident that it is at least well-formed. I'll try doing a renewal within the ARI window later this week. Again, any feedback welcome; I'd like to get this merged.

@kenh
Copy link
Copy Markdown
Author

kenh commented May 4, 2026

I keep missing the exact ARI window, but I should be able to do it again this Thursday (I set an alarm).

I reworked this patch a bit. Now it uses the following logic:

  • If ARI is supported and enabled, use that always instead of RENEW_ALLOW timing
  • Otherwise fall back to the timing in RENEW_ALLOW
  • Force renew/changed SANs still should force a renewal

@timkimber
Copy link
Copy Markdown
Member

Hi @kenh
Thanks for this PR, it's much appreciated. I had a quick review of the first version before I went on holiday and was going to comment that it looked like it would default to the wrong action if ARI wasn't supported, but your latest version fixes that. I'll do some testing tomorrow and then I'll merge it

@kenh
Copy link
Copy Markdown
Author

kenh commented May 5, 2026

Great! Thank you! Let me know if there are any problems! BTW, are there any plans for a new release?

@kenh
Copy link
Copy Markdown
Author

kenh commented May 7, 2026

I just tried to get a new order within the ARI window and it was successful. I also modified the client to purposefully send a bad "replaces" field and that was rejected (but it looped endlessly; I will submit a separate bug report for that).

Add support for ACME Renewal Information (ARI) to getssl.  If we
are past the start window for certificate renewal add the certificate
identifier to the new order request.
@kenh
Copy link
Copy Markdown
Author

kenh commented May 8, 2026

I made a minor change to this patch; it now displays the start of the ARI window when it is run without -q. I thought this might be useful for the average user.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants