Comienza la cuenta atrás para Keyfactor Tech Days | ¡Asegura tu plaza hoy mismo!

Uso de ACME para automatizar certificados: Guía paso a paso

Gestión de certificados

¿Busca una respuesta sencilla a la pregunta "qué es ACME"?

Podemos ayudarle. El Entorno Automatizado de Gestión de Certificados (ACME) es un protocolo definido por el RFC 8555 del IETF que automatiza la emisión, renovación y revocación de certificados agilizando las interacciones entre su servidor web y las autoridades de certificación (CA).

Fue desarrollado originalmente para Let's Encrypt; sin embargo, ACME está ahora ampliamente soportado por varias CA, proveedores de infraestructuras de clave pública (PKI) y navegadores.

Este artículo le guiará a través del uso de ACME para una eficiente automatización de certificadosmanteniendo sus sistemas seguros, conformes y actualizados con el mínimo esfuerzo manual. Empecemos.

Cómo automatizar certificados con el entorno de gestión automatizada de certificados

Las interrupciones y la mala gestión relacionadas con los certificados pueden interrumpir las operaciones, dañar la reputación y crear riesgos de seguridad. La automatización puede permitir a su empresa centrarse en el crecimiento y la innovación sin dejar de estar protegida, lo que en última instancia fomenta la confianza de los clientes y garantiza unas operaciones fluidas y seguras.

Estos son los pasos clave para automatizar los certificados con ACME:

Paso 1: Seleccione y configure su cliente ACME

Su cliente ACME gestionará todo el ciclo de vida de sus certificados, desde la generación hasta la revocación y renovación.

Cuando elijas un cliente ACME, asegúrate de que es compatible con tu entorno de servidor y de que no tiene fallos de seguridad que puedan ser aprovechados. También querrás elegir un cliente que admita los tipos de impugnación de certificados que requiere la configuración de tu dominio. Lo ideal es elegir un cliente que admita varios tipos de impugnación de certificados, como HTTP-01 o DNS-01. 

Además, puede elegir un cliente ACME en función de su lenguaje de programación (Bash, Python, etc.) o del entorno en el que se ejecutan (Docker, Kubernetes, etc.). 

Una vez seleccionado el cliente, asigna los dominios específicos que gestionará.

Paso 2: Elegir una autoridad de certificación

La función de la autoridad de certificación es verificar que su cliente tiene control sobre el dominio para el que solicita un certificado. Cuando elijas una autoridad de certificación (CA), ten en cuenta los tipos de certificados que proporciona, su precio y el soporte que ofrece. Asegúrate de que la CA es compatible con el cliente ACME que seleccionaste anteriormente. Open-source Las CA como Let's Encrypt son ampliamente compatibles, pero algunas CA comerciales pueden tener requisitos de integración diferentes.

Antes de continuar, debe ejecutar una prueba de conexión para asegurarse de que su cliente puede comunicarse correctamente con la CA. Esta prueba puede ser tan sencilla como una llamada a command o a una API que inicie el proceso de solicitud de certificado.

Paso 3: Generar un par de claves de autorización

Registra tu cliente en el servidor ACME. A partir de ahí, genere una clave privada y una solicitud de firma de certificado (CSR). Genere otra clave en la CSR para enviarla al servidor ACME y a la CA.

ACME puede requerir la vinculación de cuentas externas. Se trata de una capa adicional de autenticación y seguridad que limita quién puede solicitar certificados. En este caso, la CA emitirá una clave de vinculación de cuenta única cuando cree su cuenta en la plataforma de la CA. El cliente ACME firmará la clave de vinculación cuando se registre en la CA y, a continuación, enviará la vinculación al servidor ACME de la CA. Una vez verificado, ya está listo.

Paso 4: Generar CSR y enviar a CA 

A continuación, su cliente ACME enviará una CSR a la CA para solicitar formalmente su certificado digital. A continuación, la CA emitirá desafíos de control de dominio para verificar su titularidad. Normalmente recibirá un desafío DNS o HTTP. Para DNS, la CA proporciona un token que su cliente ACME debe añadir como un registro DNS TXT, que la CA consultará para confirmar la propiedad. Para HTTP, el cliente creará un archivo con el testigo en una URL específica de su servidor. La AC accederá a esta URL para recuperar el token y, una vez verificado, se confirmará su dominio.

Paso 5: Emitir el certificado 

Tras verificar la firma, la CA emite un certificado digital certificado digital X.509que está codificado en base 64. El certificado X.509 suele incluir:

  • La clave pública del cliente (del CSR)
  • Información identificativa sobre el dominio
  • La firma de la CA, que vincula la clave pública a la identidad del dominio y permite a cualquiera que confíe en el certificado raíz de la CA verificar que el certificado es auténtico y no ha sido manipulado.
  • El período de validez, incluidas las fechas de inicio y expiración
  • Nombre alternativo del asunto solicitado

Paso 6: Instalar el certificado

The agent installs the certificate by placing it in the designated directory on the server’s filesystem, typically in a secure location such as /etc/ssl/certs/ or /etc/letsencrypt/live/<domain>/ for Let’s Encrypt certificates.

Después, tienes que configurar los permisos de archivo adecuados tanto en los archivos del certificado como en los de la clave privada para evitar accesos no autorizados.

Paso 7: Automatizar la renovación de certificados

Debe configurar su cliente ACME para que gestione automáticamente las renovaciones de certificados antes de su caducidad. Recuerde configurar un trabajo automatizado si su cliente ACME no renueva automáticamente el certificado.  

Si utiliza Keyfactor Commandpuede emitir certificados de confianza públicos utilizando ACME. O si su caso de uso es de confianza privada, EJBCA es una excelente CA para emitir certificados privados utilizando el protocolo ACME.

Para renovar manualmente todos sus certificados:

REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt certbot renew

You can specify a particular certificate for renewal by adding the parameter –cert-name <domain-identifer> to the above command. If the certificates are not yet due for renewal, you can force a renewal by adding the –force-renewal. 

Nota: El umbral por defecto para la renovación en Certbot es de 30 días antes de la expiración.

Tus próximos pasos: Una mirada a Keyfactor + ACME

Keyfactor ofrece dos potentes soluciones ACME Keyfactor EJBCA y Keyfactor Command .

Keyfactor EJBCA es una plataforma PKI flexible y escalable que agiliza la emisión y gestión de certificados digitales para dispositivos, usuarios y cargas de trabajo. Es una plataforma PKI multiprotocolo y puede actuar como servidor para emitir certificados mediante ACME, SCEP y API REST. También funciona como CA, lo que permite a las organizaciones sustituir sistemas de CA obsoletos e inseguros por una solución PKI moderna y fácil de implantar, ya sea en la nube, en las instalaciones o como servicio.

Keyfactor Command proporciona visibilidad en tiempo real de los certificados de las CA privadas, públicas y basadas en la nube. Permite a las organizaciones etiquetar y organizar los certificados con metadatos, establecer alertas proactivas y simplificar la gestión de certificados con procesos de renovación automatizados. Keyfactor Command también simplifica las auditorías con registros detallados de los cambios en los certificados y ofrece controles de acceso basados en funciones para una administración segura.

¿Quiere saber más? Puede solicitar una demostración para intercambiar ideas con nuestro equipo y descubrir qué solución se adapta mejor a las necesidades de su organización.