Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR implements the latest working draft ARI protocol into the client. There are two core changes I've made to the client:
renewalInfo
endpointAcmeContext
that, given the bytes comprising a previously issued PFX certificate and its password will produce a properly formed (tests pending) ARI Certificate ID. This can either be generated as needed or persisted to facilitate easier lookups without pulling the certificate itself.2a) At regular intervals following a certificate issuance the ARI Certificate ID is appended to the end of the
renewalInfo
endpoint from the directory. When the certificate is eligible for renewal, a suggested renewal window will be provided returning a range of suggested timestamps to perform the renewal. The renewal should be scheduled at some point in this interval.2b) When the renewal is triggered, as part of creating the new Order, there's a new overload for
NewOrder
that's been added that will accept the ARI Certificate ID value, populating theReplaces
property and confirming this is an ARI-style renewal and not subject to standard renewal rate limitations, assuming the other requirements are met.I'm having some issues getting the tests running and validated because I just don't have the older .NET frameworks installed and several of the packages are quite old (getting warnings as errors), so submitting this as a draft right now with an intent to wrap it up within the next few days.
Checklist
Thanks for contributing!