View a markdown version of this page

Emisión de certificados a través de ACME - AWS Certificate Manager

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Emisión de certificados a través de ACME

Una vez que el administrador de la PKI haya configurado un punto final de ACME con validaciones de dominio y enlaces de cuentas externas, los propietarios de las aplicaciones pueden utilizar los clientes de ACME para emitir certificados. En esta sección se describe el flujo de emisión, se proporciona un breve ejemplo del uso de Certbot y se explica cómo aparecen los certificados en ACM. ACME-issued

Cómo funciona la emisión

El flujo de emisión del certificado ACME sigue el protocolo RFC 8555:

  1. Registro de la cuenta: el cliente ACME registra una cuenta con las credenciales del EAB (ID de clave y clave MAC). Se trata de un paso único por cliente ACME.

  2. Pedido de certificado: el cliente crea un pedido en el que se especifican los nombres de dominio del certificado.

  3. Autorización: el servidor ACME comprueba las validaciones de dominio preconfiguradas. Como el punto final utiliza la PRE_APPROVED autorización, no es necesario que el cliente presente ninguna impugnación en tiempo real.

  4. Finalizar: el cliente envía una solicitud de firma de certificado (CSR) para finalizar el pedido y ACM emite el certificado.

  5. Descargar: el cliente descarga la cadena de certificados emitida.

importante

La clave privada la genera el cliente ACME y nunca sale del sistema del cliente.

Ejemplo: emitir un certificado con Certbot

En este ejemplo, se muestra cómo registrar una cuenta ACME y solicitar un certificado mediante Certbot.

Requisitos previos

  • Un punto final de ACME en ACTIVE estado (tiene la URL del directorio)

  • Tiene al menos un VALID estado de validación de dominio para el dominio que desea

  • Credenciales EAB (ID de clave y clave MAC) de su administrador de PKI

  • Certbot está instalado en su sistema

Para registrar una cuenta y solicitar un certificado

importante

La emisión del certificado a través del terminal ACM ACME puede tardar hasta dos minutos. Configure el tiempo de espera de emisión de su cliente ACME en al menos 120 segundos (2 minutos) para evitar que el cliente agote el tiempo de espera antes de que se entregue el certificado. El valor predeterminado de muchos clientes ACME es de 30 a 90 segundos, lo cual no es suficiente.

Use el siguiente comando:

certbot certonly \ --standalone \ --non-interactive \ --agree-tos \ --email user@example.com \ --server https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/directory \ --eab-kid AAABBBCCC111222333 \ --eab-hmac-key base64encodedmackey \ --issuance-timeout 120 \ --domain www.example.com

Tras emitirse correctamente, Certbot almacena el certificado y la clave privada en su ubicación predeterminada (normalmente). /etc/letsencrypt/live/www.example.com/

Los certificados ACME en ACM

Los certificados emitidos a través de ACME reciben automáticamente un ARN de certificado ACM estándar y aparecen en el inventario de certificados ACM. Sin embargo, ACME-issued los certificados presentan diferencias importantes con respecto a los certificados emitidos directamente. RequestCertificate

Diferencias clave

  • La clave privada está en el lado del cliente: el cliente ACME genera y almacena la clave privada del certificado. ACM no tiene acceso a la clave privada.

  • No se pueden vincular a servicios integrados: dado AWS que no contienen la clave privada, los certificados ACME no se pueden usar con Elastic Load Balancing o API Gateway. CloudFront

  • No aparece en la salida de la lista predeterminada: los certificados ACME no aparecen en ListCertificates los resultados de forma predeterminada. Debe incluir el CertificateKeyPairOrigins filtro con el valor ACME para incluirlos. SearchCertificatesdevuelve los certificados ACME de forma predeterminada.

  • No se puede exportar a través de ACM: la ExportCertificate API no se puede utilizar porque el certificado ya está exportado por definición, ya que el cliente lo tiene.

  • Revocación únicamente a través de ACME: utilice la URL de revocación del certificado del punto final de ACME. La API de ACM RevokeCertificate no funciona con los certificados. ACME-issued

  • La renovación depende del cliente: ACM no renueva automáticamente los certificados de ACME. El cliente de ACME debe solicitar un nuevo certificado antes de que caduque el existente.

Visualización de los certificados ACME

En la consola ACM, utilice el filtro para incluir los certificados con un origen de key pair ACME. Para obtener más información sobre la búsqueda de certificados, consulte. Buscar certificados

Para enumerar los certificados ACME (AWS CLI)

list-certificatesUtilícelo con el CertificateKeyPairOrigins filtro:

aws acm list-certificates \ --certificate-key-pair-origins ACME

Para buscar certificados ACME (AWS CLI)

search-certificatesUtilícelo con el CertificateKeyPairOrigin filtro para buscar los certificados ACME según criterios adicionales:

aws acm search-certificates \ --filter-statement '{"Filter": {"AcmCertificateMetadataFilter": {"CertificateKeyPairOrigin": "ACME"}}}'

También puede buscar los certificados emitidos a través de un terminal específico o una cuenta de ACME filtrando por o. AcmeEndpointArn AcmeAccountId

Para ver los detalles del certificado (AWS CLI)

Use el siguiente comando:

aws acm describe-certificate \ --certificate-arn arn:aws:acm:region:account-id:certificate/certificate-id

Revocar los certificados ACME

Para revocar un certificado emitido a través de ACME, utilice el punto final revoke-cert del protocolo ACME. El cliente ACME se encarga de ello.

nota

ACME-issued los certificados no se pueden revocar mediante la API RevokeCertificate ACM. Debe revocar estos certificados a través del punto final de ACME que los emitió.

El siguiente ejemplo muestra la revocación mediante Certbot:

certbot revoke \ --cert-path /etc/letsencrypt/live/www.example.com/cert.pem \ --server https://acm-acme-enroll.region.api.aws/00000000-0000-0000-0000-000000000000/directory

La revocación la autoriza la función de IAM asociada a la vinculación de la cuenta externa del cliente, por lo que en este caso se aplican las mismas políticas de IAM y SCP que se aplican a la acción estándar. acm:RevokeCertificate Para obtener más información sobre la configuración de la función de IAM requerida, consulte. Automatización de certificados de IAM para ACME

Renovación de certificados

ACM no renueva los certificados ACME. Su cliente ACME es responsable de solicitar un nuevo certificado antes de que caduque el actual. La mayoría de los clientes de ACME (incluido Certbot) admiten la renovación automática mediante tareas programadas (como tareas temporales o temporizadores de Systemd).

Estabilidad del ARN en todas las renovaciones

Cuando un cliente de ACME renueva un certificado, ACM determina si la nueva emisión es una renovación de un certificado existente o de un certificado distinto. Si la emisión proviene de la misma cuenta ACME con los mismos metadatos del certificado (como nombres de dominio y algoritmo clave), ACM actualiza el ARN del certificado existente en lugar de crear uno nuevo. Esto mantiene el ARN estable durante las renovaciones, lo que simplifica el seguimiento y la automatización.

Si el certificado original se ha eliminado de ACM (por ejemplo, porque caducó hace más de un año y se eliminó automáticamente), una emisión posterior con los mismos metadatos crea un nuevo ARN de certificado.

Ejemplo de renovación automática de Certbot (normalmente se configura automáticamente durante la instalación de Certbot):

certbot renew --quiet