Reference implementation of ACME.
This implementation is intended more as a tool for learning about ACME and working on its development than something to be used in production.
- Demonstrate how the protocol works in as minimal as a way as possible
- Provide a platform to show how possible changes to the protocol impact an implementation
- Provide a testing / conformance tool for people developing ACME implementations
- 100% test and documentation coverage
- Non-goal: Having a clean command line interface or API
Internally, this module has a layered structure reflecting the layering of ACME.
jose
andnonce-source
modules that provide some basic servicestransport-client
andtransport-server
address the transport layer requirements of the protocol, e.g., message signing and verification.*-validation
modules capture the various ways to validate possession of an identifieracme-client
andacme-server
provide the logic for the application-level issuance flow
acme-server acme-client
| | | |
| +--------------+----------+ |
| | |
transport-server *-validation transport-client
| | | |
| +--------------+--------------+
| |
nonce-source jose