Go to file
Richard Körber a9502ff617
Implement ACME draft 10
2018-03-10 15:35:29 +01:00
.github Add issue template and contribution rules 2018-01-07 16:34:12 +01:00
acme4j-client Do not send authorization with challenge 2018-03-10 15:33:57 +01:00
acme4j-example Add SpotBugs and fix reported issues 2018-03-06 22:10:18 +01:00
acme4j-it Review documentation, update to ACME v2 2018-02-21 20:04:59 +01:00
acme4j-utils Add SpotBugs and fix reported issues 2018-03-06 22:10:18 +01:00
src/site Shorten gradle dependency 2018-03-10 15:22:02 +01:00
.gitignore Initial commit 2015-12-04 21:28:12 +01:00
.gitlab-ci.yml Always rebuild docker image on CI. Fail if IT fails. 2017-11-10 00:14:59 +01:00
.project Project start 2015-12-09 01:24:03 +01:00
CONTRIBUTING.md Add issue template and contribution rules 2018-01-07 16:34:12 +01:00
LICENSE-APL.txt Initial commit 2015-12-04 21:28:12 +01:00
README.md Implement ACME draft 10 2018-03-10 15:35:29 +01:00
pom.xml Add SpotBugs and fix reported issues 2018-03-06 22:10:18 +01:00

README.md

ACME Java Client build status maven central

NOTE: There is currently no acme4j 2.0 release available at Maven Central. To use acme4j with the ACMEv2 protocol, you need to build it yourself and use version 2.0-SNAPSHOT in your project. Version 2.0 will be available as soon as Let's Encrypt starts its production ACMEv2 server.

For production you should use the latest version available at Maven Central (see the badge above). You can find the corresponding source code in the acmev1 branch.

NOTE: Due to a change in the ACME draft 10 that is not downward compatible, please use the staging branch of acme4j if you want to connect to the Let's Encrypt staging server. This is only a temporary workaround, until the staging server incorporates these changes.

This master branch implements the latest ACME draft. It can be used with a local Pebble or Boulder server.

This is a Java client for the Automatic Certificate Management Environment (ACME) protocol.

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

  • Fully supports the ACME v2 protocol up to draft 10
  • Easy to use Java API
  • Requires JRE 8 (update 101) or higher
  • Built with maven, packages available at Maven Central
  • Small, only requires jose4j and slf4j as dependencies
  • Extensive unit and integration tests

ACME Versions

There are two versions of the ACME protocol specification, ACME v1 and ACME v2.

ACME v1 is currently in production. It is supported by acme4j < 2.0, so use acme4j < 2.0 for production purposes!

Let's Encrypt plans to launch an ACME v2 production server in the near future. A staging server is already available. acme4j >= 2.0 supports the ACME v2 protocol.

Let's Encrypt has not announced a sunset date for ACME v1 yet, so there is plenty of time for migration.

Known Issues

  • The acme4j v2 API is still subject to change.
  • Integration tests do not fully cover all functions. The standard methods for creating an account, ordering, and downloading a certificate are tested. Other methods are not tested yet, and may not work as expected.

Usage

Contribute

License

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

Acknowledgements