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.

Please migrate your code to acme4j v2.5 or higher soon!

This acme4j v1 branch will only receive security fixes until November 1st, 2019. After that date, ACME v1 support will end and this branch will be closed.

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.