View a markdown version of this page

Émission de certificats via ACME - AWS Certificate Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Émission de certificats via ACME

Une fois que votre administrateur PKI a configuré un point de terminaison ACME avec des validations de domaine et des liaisons de comptes externes, les propriétaires d'applications peuvent utiliser les clients ACME pour émettre des certificats. Cette section décrit le flux d'émission, fournit un bref exemple d'utilisation de Certbot et explique comment les ACME-issued certificats apparaissent dans ACM.

Comment fonctionne l'émission

Le flux d'émission des certificats ACME suit le protocole RFC 8555 :

  1. Enregistrement du compte : le client ACME enregistre un compte à l'aide des informations d'identification EAB (clé ID et clé MAC). Il s'agit d'une étape unique par client ACME.

  2. Commande de certificat : le client crée une commande spécifiant les noms de domaine du certificat.

  3. Autorisation : le serveur ACME vérifie les validations de domaines préconfigurées. Étant donné que le point de terminaison utilise PRE_APPROVED l'autorisation, aucun défi en direct n'est requis de la part du client.

  4. Finaliser : le client soumet une demande de signature de certificat (CSR) pour finaliser la commande, et ACM émet le certificat.

  5. Téléchargement : le client télécharge la chaîne de certificats émise.

Important

La clé privée est générée par le client ACME et ne quitte jamais le système du client.

Exemple : émission d'un certificat avec Certbot

Cet exemple montre comment enregistrer un compte ACME et demander un certificat à l'aide de Certbot.

Conditions préalables

  • Un point de terminaison ACME en ACTIVE état (vous avez l'URL du répertoire)

  • Au moins une validation de domaine dans le VALID statut du domaine que vous souhaitez

  • Informations d'identification EAB (ID de clé et clé MAC) fournies par votre administrateur PKI

  • Certbot installé sur votre système

Pour créer un compte et demander un certificat

Important

L'émission de certificats via le point de terminaison ACM ACME peut prendre jusqu'à deux minutes. Configurez le délai d'émission de votre client ACME à au moins 120 secondes (2 minutes) pour éviter que le client n'expire avant que le certificat ne soit délivré. La durée par défaut de nombreux clients ACME est de 30 à 90 secondes, ce qui n'est pas suffisant.

Exécutez la commande suivante :

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

Une fois l'émission réussie, Certbot stocke le certificat et la clé privée dans leur emplacement par défaut (généralement/etc/letsencrypt/live/www.example.com/).

Certificats ACME dans ACM

Les certificats émis via ACME reçoivent automatiquement un ARN de certificat ACM standard et apparaissent dans l'inventaire des certificats ACM. Cependant, les ACME-issued certificats présentent des différences importantes par rapport aux certificats émis par le biais deRequestCertificate.

Principales différences

  • La clé privée est côté client : la clé privée du certificat est générée et stockée par le client ACME. ACM n'a pas accès à la clé privée.

  • Impossible de se lier aux services intégrés : comme il AWS ne contient pas la clé privée, les certificats ACME ne peuvent pas être utilisés avec Elastic Load Balancing ou API Gateway. CloudFront

  • Ne figure pas dans la sortie de liste par défaut : les certificats ACME n'apparaissent pas dans les ListCertificates résultats par défaut. Vous devez inclure le CertificateKeyPairOrigins filtre avec une valeur ACME pour les inclure. SearchCertificatesrenvoie les certificats ACME par défaut.

  • Impossible d'exporter via ACM : l'ExportCertificateAPI ne peut pas être utilisée car le certificat est déjà exporté par définition puisque le client le possède.

  • Révocation via ACME uniquement : utilisez l'URL de revoke-cert du point de terminaison ACME. L'RevokeCertificateAPI ACM ne fonctionne pas pour les ACME-issued certificats.

  • Le renouvellement est piloté par le client : ACM ne renouvelle pas automatiquement les certificats ACME. Le client ACME doit demander un nouveau certificat avant que le certificat existant n'expire.

Affichage des certificats ACME

Dans la console ACM, utilisez le filtre pour inclure les certificats dont l'origine est une paire de clés ACME. Pour plus d'informations sur la recherche de certificats, consultezRechercher des certificats.

Pour répertorier les certificats ACME (AWS CLI)

À utiliser list-certificates avec le CertificateKeyPairOrigins filtre :

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

Pour rechercher des certificats ACME (AWS CLI)

À utiliser search-certificates avec le CertificateKeyPairOrigin filtre pour rechercher des certificats ACME selon des critères supplémentaires :

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

Vous pouvez également rechercher des certificats émis via un point de terminaison ou un compte ACME spécifique en filtrant sur AcmeEndpointArn ouAcmeAccountId.

Pour afficher les détails du certificat (AWS CLI)

Exécutez la commande suivante :

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

Révocation des certificats ACME

Pour révoquer un certificat émis via ACME, utilisez le point de terminaison revoke-cert du protocole ACME. C'est le client ACME qui s'en charge.

Note

ACME-issued les certificats ne peuvent pas être révoqués à l'aide de l'API ACM. RevokeCertificate Vous devez révoquer ces certificats via le point de terminaison ACME qui les a émis.

L'exemple suivant montre la révocation à l'aide de 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 révocation est autorisée par le rôle IAM associé à la liaison de compte externe du client, de sorte que les mêmes politiques IAM et SCP qui s'appliquent à l'action standard acm:RevokeCertificate s'appliquent ici. Pour plus d'informations sur la configuration de rôle IAM requise, consultezAutomatisation des certificats IAM pour ACME.

Renouvellement des certificats

Les certificats ACME ne sont pas renouvelés par ACM. Votre client ACME est chargé de demander un nouveau certificat avant l'expiration du certificat actuel. La plupart des clients ACME (y compris Certbot) prennent en charge le renouvellement automatique par le biais de tâches planifiées (telles que les tâches cron ou les minuteries Systemd).

Stabilité de l'ARN lors des renouvellements

Lorsqu'un client ACME renouvelle un certificat, ACM détermine si la nouvelle émission est le renouvellement d'un certificat existant ou d'un certificat distinct. Si l'émission provient du même compte ACME avec les mêmes métadonnées de certificat (telles que les noms de domaine et l'algorithme clé), ACM met à jour l'ARN du certificat existant plutôt que d'en créer un nouveau. Cela permet de maintenir la stabilité de l'ARN lors des renouvellements, ce qui simplifie le suivi et l'automatisation.

Si le certificat d'origine a été supprimé d'ACM (par exemple, parce qu'il a expiré il y a plus d'un an et a été automatiquement supprimé), une émission ultérieure avec les mêmes métadonnées crée un nouvel ARN du certificat.

Exemple de renouvellement automatique de Certbot (généralement configuré automatiquement lors de l'installation de Certbot) :

certbot renew --quiet