ACME con acme4j

EMPRESA Esta es una característica de EJBCA Enterprise.

A continuación se explica cómo instalar y utilizar el cliente ACME acme4j.

Para obtener información general sobre ACME (Entorno de gestión automática de certificados), consulte ACME .

acme4j es un cliente Java para ACME que permite conectarse a un servidor ACME y realizar todos los pasos necesarios para administrar certificados. Para más información, consulte acme4j en GitHub .

acme4j incluye un proyecto de ejemplo que implementa un cliente de prueba. Una pequeña actualización del código original de acme4j para aceptar la URL del servidor ACME y, opcionalmente, inscribir certificados para identificadores IP permite la integración con EJBCA para pruebas (véase org.shredzone.acme4j.example.ClientTest - Uso: ClientTest <URL> <domain/Ip> [<domain/Ip>] ...). Véase el archivo adjunto acme4j-example-2.14-jar-with-dependencies.jar y ClientTest.java .

Las siguientes instrucciones se refieren al archivo acme4j-example-2.14-jar-with-dependencies.jar para mayor comodidad. Consulte la implementación del cliente de acme4j o obtenga más información en acme4j en GitHub .

Instalación y funcionamiento

Versiones compatibles

EJBCA Enterprise admite acme4j versión 2.11 o superior.

La última versión probada con EJBCA Enterprise es acme4j 2.14.

Descargar

Descargue o instale desde el repositorio de GitHub: acme4j en GitHub .

Funciones compatibles

Las siguientes son las funciones destacadas admitidas:

  • acme4j admite las aprobaciones EJBCA para la gestión de cuentas ACME.

  • acme4j admite la inscripción de certificados para identificadores de IP.

  • acme4j admite la preautorización

  • acme4j admite EAB (enlaces de cuentas externas) como se especifica en la sección 7.3.4 del RFC 8555 , así como también con clave pública o certificado.

Prerrequisitos

acme4j requiere JRE8 o superior.

Instalación

Ver acme4j en GitHub .

Prueba de EJBCA ACME con el cliente de ejemplo acme4j 2.14

acme4j es una biblioteca cliente ACME basada en Java que requiere JDK8+. Administra cuentas ACME y certificados para múltiples identificadores, compatible con identificadores IPv4 e IPv6, entre otros.

Consulte el uso con java -jar acme4j-example-2.14-jar-with-dependencies.jar

Si no existe ninguna cuenta, se crea una nueva. El cliente de ejemplo acme4j genera la clave de cuenta (user.key), la clave de dominio (domain.key) y la CSR (domain.csr) en el mismo directorio donde se ejecutó.

Ejemplo para inscribir un certificado con CN=localhost y SAN=dnsName=localhost.


Cliente de prueba EJBCA de acme4j

java -Djavax.net.ssl.trustStore=$EJBCA_HOME/p12/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit -jar acme4j-example- 2.14 -jar-with-dependencies.jar https: //localhost:8442/ejbca/acme/directory localhost

Ejemplo para inscribir un certificado con CN=localhost y SAN=dnsName=localhost,ipAddress=127.0.0.1.
Cliente de prueba EJBCA de acme4j

java -Djavax.net.ssl.trustStore=$EJBCA_HOME/p12/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit -jar acme4j-example- 2.14 -jar-with-dependencies.jar https: //localhost:8442/ejbca/acme/directory localhost 127.0.0.1

Ejemplo para inscribir un certificado con CN=2002:c0a8:0164::c0a8:0164 (=192.168.1.100) y SAN=dnsName=domain.host,ipAddress=2002:c0a8:0164::c0a8:0164.
Cliente de prueba EJBCA de acme4j

java -Djavax.net.ssl.trustStore=$EJBCA_HOME/p12/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit -jar acme4j-example- 2.14 -jar-with-dependencies.jar https: //[0:0:0:0:0:0:0:1]:8442/ejbca/acme/directory 2002:c0a8:0164::c0a8:0164 domain.host

Tenga en cuenta que su servidor de aplicaciones debe ejecutarse con IPv6. Wildfly14 solo puede funcionar con IPv4 o IPv6.