Go to file
Richard Körber 23906ff39c
Add AcmeNotSupportedException
- Some Optional return values could only be empty if a method was
  invoked although the server did not support that feature. In order to
  keep the API simple, a newly introduced AcmeNotSupportedException is
  now thrown in that case, so these methods will immediately return a
  non-null value. There is always a method to check if a feature is
  available or not, so the invoker can check in advance and does not
  need to actively handle that exception.
- Some other places that previously threw an exception because of
  missing features, are now also throwing AcmeNotSupportedException for
  consistency.
2023-05-06 17:31:12 +02:00
.github/workflows Remove Java 9 tests from CI 2022-11-18 16:28:22 +01:00
acme4j-client Add AcmeNotSupportedException 2023-05-06 17:31:12 +02:00
acme4j-example getCertificate() is not Optional 2023-05-06 17:29:16 +02:00
acme4j-it getCertificate() is not Optional 2023-05-06 17:29:16 +02:00
acme4j-smime Review and extend JavaDocs 2023-04-29 15:11:00 +02:00
acme4j-utils Review and extend JavaDocs 2023-04-29 15:11:00 +02:00
src Add AcmeNotSupportedException 2023-05-06 17:31:12 +02:00
.gitignore Remove IDE generated files 2019-03-16 16:42:22 +01:00
.gitlab-ci.yml Fix mvn order in CI deploy stage 2020-06-02 14:10:36 +02:00
CONTRIBUTING.md AI based code generators are not acceptable for contributions 2022-11-03 16:38:39 +01:00
LICENSE-APL.txt Initial commit 2015-12-04 21:28:12 +01:00
README.md Require Java 11 or higher 2023-04-23 13:12:27 +02:00
pom.xml Use wiremock to test HTTP client 2023-04-23 22:43:18 +02:00

README.md

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 11 or higher
  • Built with maven, packages available at Maven Central
  • Extensive unit and integration tests
  • Adheres to Semantic Versioning

If you require Java 8 or Android compatibility, you can use acme4j v2 instead. Version 2 is still receiving bugfixes and security updates until September 2023.

Dependencies

Usage

Announcements

Follow our Mastodon feed for release notes and other acme4j related news.

Contribute

License

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

Acknowledgements