acme4j

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.

The source code can be found at GitHub and is distributed under the terms of Apache License 2.0.

ACME v1

This acme4j branch implements the deprecated ACME v1 protocol. Let’s Encrypt has announced an End of Life Plan for ACME v1. According to this plan, access to the ACME v1 servers will be limited starting November 2019, and completely stopped in June 2021.

For this reason, development of acme4j v1 has been terminated since November 1st, 2019. Please migrate your code to acme4j v2.5 or higher!

There will be no more updates or security fixes for acme4j v1. Bug reports related to acme4j v1 will be closed without comment.

Quick Start

acme4j is available at Maven Central. Just add this snippet to your pom.xml:

<dependency>
  <groupId>org.shredzone.acme4j</groupId>
  <artifactId>acme4j-client</artifactId>
  <version>1.1</version>
</dependency>

There is also an optional utility module that will help you handling key pairs and certificates (but requires Bouncy Castle):

<dependency>
  <groupId>org.shredzone.acme4j</groupId>
  <artifactId>acme4j-utils</artifactId>
  <version>1.1</version>
</dependency>

Now just have a look at this source code to see an example usage.