Implémentation du protocole ACME par Sectigo

Le protocole ACME (Automatic Certificate Management Environment) a été créé à l'origine pour le service Let's Encrypt afin d'automatiser les relations entre une machine et l'AC chargée de lui délivrer des certificats.

Ce protocole a fait depuis l'objet d'un RFC (8555).

À la différence de Let's Encrypt qui délivre des certificats conformes au standard DV (Domain Validation), le protocole a été implémenté par Sectigo afin de délivrer aussi des certificats OV (Organization Validation) et EV (Extended Validation).

La documentation de l'implémentation ACME de Sectigo est accessible en téléchargeant le document SCM - Sectigo Certificate Manager Administrator's Guide sur https://support.sectigo.com/Com_KnowledgeProductPage?c=Sectigo_Certificate_Manager_SCM.

Cette fonctionnalité est accessible aux RAO et DRAO dans la limite des périmètres qui leur ont été affectés.

Création du compte ACME

L'utilisation du protocole ACME passe par la création d'un compte ACME spécifique depuis le portail SCM de Sectigo. Les étapes sont les suivantes :

  1. Connectez-vous au portail SCM de Sectigo en tant que RAO ou DRAO
  2. Choisissez le menu Settings, puis cliquez sur Enrollment Endpoints :
  3. Cherchez la ligne “https://acme.sectigo.com/v2/OV” si vous souhaitez un compte ACME permettant de demander des certificats OV et une fois sélectionnée cliquez sur Accounts
  4. Cliquez sur Add
    1. Si vous souhaitez créer un compte ACME pour votre organisation en tant que RAO, sélectionnez votre organisation dans la liste
    2. Si vous souhaitez créer un compte ACME pour votre département en tant que DRAO, sélectionnez votre organisation dans la liste puis cliquez sur Departments et enfin sélectionnez votre département dans la liste
  5. Vous devrez choisir les domaines pour lesquels le compte sera actif.
    Par exemple si vous prenez sousdomaine.domaine.fr, le compte permettra de demander des certificats pour les exemples ci-dessous :
  6. Cliquez sur Ok pour valider la création du compte
  7. Notez bien les informations suivantes (elles peuvent être récupérées à nouveau en cliquant sur Details) :
    • ACME URL
    • Key ID
    • HMAC Key

Le compte ACME ainsi créé dans le portail SCM a alors un état pending tant que le client certbot n'est pas installé et qu'aucun certificat n'a été demandé.

Vous pouvez associer des domaines dont la DCV n'a pas encore été réalisée. La validation du domaine peut être réalisée par challenge avec cerbot dans ce cas uniquement.

Utilisation du compte ACME avec certbot

Installation de certbot

Afin d'installer certbot sur votre machine, le plus simple est de se rendre sur la page https://certbot.eff.org et de sélectionner votre logiciel et système d'exploitation, un guide d'installation adapté vous sera alors proposé.

Utilisation de certbot

La première chose à faire est d'activer le compte ACME créé précédemment :

//exemple avec un certificat de type OV
sudo certbot register --email monemail@domaine.fr --server https://acme.sectigo.com/v2/OV --eab-kid <Key ID> --eab-hmac-key <HMAC Key>

Puis vous pouvez demander votre certificat, soit en mode batch, soit en interactif :

sudo certbot certonly --standalone --non-interactive --agree-tos --email monemail@domaine.fr --server https://acme.sectigo.com/v2/OV --eab-kid <Key ID> --eab-hmac-key <HMAC Key> --domain mondomaine.fr

A partir de là, le compte ACME dans le portail SCM de Sectigo aura un état valid.

L'activation du compte, une fois qu'elle a été réussie, ne peut plus être relancée une seconde fois.

Si vous souhaitez utiliser un compte ACME de Sectigo sur différentes machines, il conviendra après l'installation du client certbot sur la seconde machine de recopier les répertoires et les secrets générés sur la première machine lors de la phase d'activation du compte ACME (notamment le contenu des répertoires keys, accounts).

Les certificats demandés avec ACME pour Sectigo ont une durée de validité de 1 an et il peuvent être renouvelés automatiquement en lançant la commande suivante manuellement ou via une tache cron :

sudo certbot renew

Même si la commande “certbot renew” est lancée avec succès, le renouvellement lui-même du certificat n'est réalisé automatiquement que si la commande est lancée dans le 30 jours avant la date d'expiration du certificat.

Avant de lancer le renouvellement d'un certificat, le serveur OCSP (Online Certificate Status Protocol) de Sectigo, ocsp.sectigo.com peut être contacté au préalable et ensuite le serveur ACME de Sectigo acme.sectigo.com. Il convient donc que ces deux serveurs soient accessibles depuis la machine où est installé le client certbot.

Visibilité des certificats ACME dans SCM

Les demandes de certificats réalisées avec ACME ne sont pas visibles immédiatement dans l'onglet “Certificates” du portail SCM de Sectigo .
Elles sont notées avec un statut External et Requested by ACME.

Chaine de certification des certificats ACME

Les chaines de certification utilisées sur les certificats gérés par ACME sont différentes de celles des certifcats demandés par API ou directement dans le portail SCM de Sectigo.
La chaine est la suivante pour les certifcats ACME OV : “Sectigo RSA Organization Validation Secure Server CA” : elle est visible directement sur le portail SCM dans l'onglet de gestion des certificats en cliquant sur un certificat ACME ou sur chaines_de_certification