Implémentation du protocole ACME Harica
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 documentation de l'implémentation ACME de Harica sur https://guides.harica.gr/docs/Guides/Server-Certificate/ACME-Instructions/. Une version plus évoluée devrait être proposée dés mars 2025.
UNDERCONSTRUCT
Implémentation du protocole ACME par Sectigo (2020-2025)
À 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.
Les certificats SSL demandés avec ACME via l'url https://acme.sectigo.com/v2/GEANTOV seront signés avec la chaine de certification “GEANT OV RSA CA 4” du service TCS et non celle par défaut de Sectigo, “Sectigo RSA Organization Validation Secure Server CA”.
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 :
- Connectez-vous au portail SCM de Sectigo en tant que RAO ou DRAO
- Choisissez le menu Enrollment, puis cliquez sur ACME :
- Cherchez la ligne “https://acme.sectigo.com/v2/GEANTOV” si vous souhaitez un compte ACME permettant de demander des certificats OV et une fois sélectionnée cliquez sur Accounts
- Cliquez sur le bouton +
- Si vous souhaitez créer un compte ACME pour votre organisation en tant que RAO, sélectionnez votre organisation dans la liste
- 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
- 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 :- sousdomaine.domaine.fr
- *.sousdomaine.domaine.fr
- Cliquez sur Ok pour valider la création du compte
- 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é.
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 (cette opération n'est à réaliser qu'une seule fois) :
//exemple avec un certificat de type OV sudo certbot register --email <monemail@domaine.fr> --server https://acme.sectigo.com/v2/GEANTOV --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 --server https://acme.sectigo.com/v2/GEANTOV --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.
- soit de lancer la commande complète suivante :
certbot certonly --standalone --non-interactive --agree-tos --email <monemail@domaine.fr> --server https://acme.sectigo.com/v2/GEANTOV --eab-kid <Key ID> --eab-hmac-key <HMAC Key> --domain <mondomaine.fr>
- soit 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.
Désactivation du compte ACME avec certbot
Si votre compte est passé le portail SCM de Sectigo en statut deactivated ou que vous souhaitez supprimer le compte ACME lié à Sectigo de votre installation certbot, vous pouvez utiliser la commande suivante :
certbot unregister --server https://acme.sectigo.com/v2/GEANTOV
Visibilité des certificats ACME dans SCM
Depuis la mise à jour 22.12 du portail SCM de Sectigo, les demandes de certificats réalisées avec ACME sont visibles dans l'onglet “Certificates” puis “Certificates SSL” comme toutes les demandes de certificats serveur.
Elles sont notées avec ACME dans la colonne REQUESTED VIA.
Chaine de certification des certificats ACME
Les chaines de certification utilisées sur les certificats gérés par ACME avec l'url https://acme.sectigo.com/v2/OV sont différentes de celles des certificats demandés par API ou directement dans le portail SCM de Sectigo ou avec ACME via l'url https://acme.sectigo.com/v2/GEANTOV.
La chaine est la suivante pour les certificats ACME OV avec l'url https://acme.sectigo.com/v2/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
Exemples d'utilisation d'ACME
En avril 2021, Sectigo et différents NREN de Géant ont présenté des retours d'expérience sur l'utilisation d'ACME dans le cadre de TCS : https://wiki.geant.org/display/TCSNT/TCS+Training
Sectigo propose des exemples d'intégration avec ACME sur https://docs.sectigo.com/scm/acme-integration-docs/1/eab-clients-sectigo-acme-integration.html