-
Notifications
You must be signed in to change notification settings - Fork 15
ACME: certificate issue and renewal implementation. #16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
57a7bd4
to
d5ed1d0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great, just a couple asks...
Also, is it your plan to push the net submodule and the util.rs functions to ngx-rust?
d5e33b6
to
33dd5d6
Compare
8876321
to
2e1a585
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fantastic!
d867989
to
119b2a6
Compare
This change implements a subset of JOSE specifications sufficient for RFC8555: JSON Web Signature with RS256, ES256, ES384 and ES512 algorithms (RFC7515, RFC7518) and JSON Web Key Thumbprint (RFC7638).
The client is using NGINX connection infrastructure with async wrappers, but the message parser is currently provided by "hyper". There are several shortcomings in this approach, most importantly lack of support for pre-resolved upstreams, keepalive or fine tuning of connection buffering and timeouts. There is a plan to provide a better HTTP client implementation in one of the future releases of ngx-rust and use it as a replacement.
Co-authored-by: Pat Hickey <[email protected]>
119b2a6
to
7044037
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good for me.
Starting from v2.7.0, pebble ignores certificateValidityPeriod and uses the validityPeriod from the default profie instead. The profile was removed during the review of #16, because I assumed it was redundant and the tests (with pebble v2.6.0) confirmed that.
Starting from v2.7.0, pebble ignores certificateValidityPeriod and uses the validityPeriod from the default profie instead. The profile was removed during the review of #16, because I assumed it was redundant and the tests (with pebble v2.6.0) confirmed that.
Starting from v2.7.0, pebble ignores certificateValidityPeriod and uses the validityPeriod from the default profie instead. The profile was removed during the review of #16, because I assumed it was redundant and the tests (with pebble v2.6.0) confirmed that.
This PR gets us a working ACME client implementation, tested with pebble, boulder (deployed on Let's Encrypt staging and production), and Step CA. Further compatibility testing is blocked on a lack of EAB implementation (#6).
The error handling in acme.rs is not finalized and may receive some final touches this week. The rest should be ready for review.