acme4j icon indicating copy to clipboard operation
acme4j copied to clipboard

Java client for ACME (Let's Encrypt)

ACME Java Client build status maven central

This is a Java client for the Automatic Certificate Management Environment (ACME) protocol as specified in RFC 8555.

ACME is a protocol that a certificate authority (CA) and an applicant can use to automate the process of verification and certificate issuance.

This Java client helps connecting to an ACME server, and performing all necessary steps to manage certificates.

It is an independent open source implementation that is not affiliated with or endorsed by Let's Encrypt.

Features

  • Mature and stable code base. First release was in December 2015!
  • Fully RFC 8555 compliant
  • Supports the http-01, dns-01, and tls-alpn-01 (RFC 8737) challenges
  • Supports RFC 8738 IP identifier validation
  • Supports RFC 8739 short-term automatic certificate renewal (experimental)
  • Supports RFC 8823 for S/MIME certificates (experimental)
  • Easy to use Java API
  • Requires JRE 8 (update 101) or higher. For building the project, Java 9 or higher is required.
  • Built with maven, packages available at Maven Central
  • Extensive unit and integration tests
  • Reported to work on Android. However, this platform is not officially supported.

Dependencies

Usage

Contribute

License

acme4j is open source software. The source code is distributed under the terms of Apache License 2.0.

Acknowledgements

  • I would like to thank Brian Campbell and all the other jose4j developers. acme4j would not exist without your excellent work.
  • Thanks to Daniel McCarney for his help with the ACME protocol, Pebble, and Boulder.
  • Ulrich Krause for his help to make acme4j run on IBM Java VMs.
  • I also like to thank everyone who contributed to acme4j.
  • JetBrains kindly provided a free open source license for IntelliJ IDEA.