Comment utiliser un client ACME pour récupérer vos certificats TLS

Si vous avez souscrit un abonnement au certificat ACME auprès de Gandi, vous pouvez utiliser le protocole ACME pour demander, installer et renouveler automatiquement votre certificat. Votre abonnement comprend deux informations d’identification qui relient votre client ACME à votre abonnement payant. Ceux-ci sont connus sous le nom de EAB Key ID et EAB HMAC Key dans le protocole ACME, mais dans votre compte Gandi, ils sont étiquetés un peu différemment :

  • ID : Cela correspond à votre EAB Key ID (eab-kid)

  • ACME CODE : C’est votre EAB HMAC Key (eab-hmac-key)

Vous trouverez également l’URL du serveur ACME sur la même page, qui est l’URL du répertoire dont votre client ACME a besoin pour se connecter à l’autorité de certification.

Cette page explique comment utiliser ces informations d’identification avec les clients ACME les plus courants : Certbot, acme.sh et win-acme. Il vous suffit de suivre la section correspondant au client que vous envisagez d’utiliser.

Avant de commencer

Retrouvez vos identifiants dans votre compte Gandi

  1. Connectez-vous à votre compte Gandi et rendez-vous sur votre page Abonnement ACME.

  2. En haut de la page, vous verrez le nom de votre abonnement, son statut de validité (Valide), sa date d’expiration et son Type (par exemple, Validation de domaine). Ce type vous indique le type de certificat émis par votre abonnement – Validation de domaine (DV) ou Validation d’organisation (OV) – qui est reflété dans l’URL du serveur ACME.

  3. En dessous, vous trouverez trois champs :

  • ID - c’est votre eab-kid.

  • ACME CODE — c’est votre clé eab-hmac. Il est masqué par défaut ; cliquez sur l’icône en forme d’œil pour le révéler, puis copiez-le dans son intégralité.

  • URL du serveur ACME — il s’agit de l’URL du répertoire de votre client ACME, par exemple https://acme.sectigo.com/v2/DV. Cliquez sur l’icône de copie à côté pour copier la valeur complète.

  1. Plus bas sur la page, vous verrez la liste des domaines attachés à cet abonnement. Seuls les domaines répertoriés ici peuvent avoir des certificats émis pour ces informations d’identification. Utilisez Ajouter des domaines si le domaine que vous souhaitez sécuriser n’est pas encore répertorié.

Ensuite, assurez-vous d’avoir les éléments suivants avant de demander un certificat :

  • Votre identifiant (eab-kid) et votre CODE ACME (eab-hmac-key), copiés exactement comme indiqué, sans espaces supplémentaires ni caractères manquants. Il s’agit de la cause la plus courante d’une erreur badEABCredentials.

  • L’URL du serveur ACME affichée sur votre page d’abonnement.

  • Accès administrateur ou root au serveur sur lequel le certificat sera installé.

  • Port 80 (pour la validation HTTP) ou accès à votre zone DNS (pour la validation DNS) ouvert et disponible, afin que l’AC puisse confirmer que vous contrôlez le domaine.

  • Le domaine pour lequel vous demandez un certificat doit déjà apparaître dans la liste des domaines sur votre page d’abonnement ACME.

Conservez votre CODE ACME dans un endroit sécurisé, comme un gestionnaire de mots de passe. Toute personne possédant votre identifiant et votre CODE ACME peut demander des certificats pour votre abonnement CA pour n’importe quel domaine répertorié sur la page, alors traitez-la de la même manière que vous traiteriez un mot de passe.

Si vous n’avez plus besoin de cet abonnement, vous pouvez le supprimer en bas de la même page en utilisant Annuler l’abonnement. Tous les certificats que vous avez déjà émis resteront valables jusqu’à leur expiration, mais aucun autre renouvellement ne sera possible une fois l’abonnement annulé.

Utiliser Certbot

Certbot est le client ACME que nous recommandons si vous ne savez pas lequel utiliser, car il offre la prise en charge la plus large des serveurs Web et des fournisseurs DNS.

Étape 1 : Installer Certbot

Si Certbot n’est pas déjà installé sur votre serveur, suivez les instructions d’installation de votre système d’exploitation sur certbot.eff.org.

Étape 2 : Enregistrez votre compte ACME avec vos informations d’identification

Exécutez la commande suivante, en remplaçant –server par l’URL du serveur ACME affichée sur votre page d’abonnement, --eab-kid par la valeur du champ ID et --eab-hmac-key par la valeur du champ ACME CODE :

sudo certbot register \
  --email your-email@example.com \
  --agree-tos \
  --server dummy_server \
  --eab-kid dummy_kid \
  --eab-hmac-key dummy_hmac

Vous n’aurez à le faire qu’une seule fois par serveur. Si la commande réussit, votre compte ACME est désormais lié à votre abonnement CA et vous n’aurez plus besoin de transmettre --eab-kid ou --eab-hmac-key sur ce serveur.

Étape 3 : Demandez votre certificat

Une fois votre compte enregistré, vous pouvez demander un certificat pour votre domaine. Si vous utilisez Apache ou Nginx et souhaitez que Certbot configure automatiquement votre serveur Web, utilisez le plugin correspondant :

sudo certbot --nginx \
--server dummy_server \
--domain example.com \
--cert-name example-com

Si vous préférez que Certbot obtienne uniquement les fichiers de certificat sans toucher à la configuration de votre serveur Web, utilisez plutôt certonly :

sudo certbot certonly --standalone \
--server dummy_server \
--domain example.com \
--cert-name example-com

Pour demander un certificat couvrant plusieurs domaines ou un caractère Wildcard, ajoutez un indicateur –domain pour chaque nom ou utilisez -d:

sudo certbot certonly --standalone \
--server dummy_server \
-d example.com -d www.example.com \
--cert-name example-com

Les domaines Wildcard nécessitent une validation DNS plutôt qu’une validation HTTP. Vous pouvez automatiser cette étape à l’aide d’un plugin DNS ou d’un hook manuel qui crée l’enregistrement TXT _acme-challenge pour vous.

Notez que l’autorité de certification émettra uniquement un certificat pour un domaine déjà répertorié dans la liste des domaines de votre abonnement. Si le domaine que vous demandez n’y figure pas encore, revenez à votre page d’abonnement ACME et utilisez Ajouter des domaines avant de réessayer.

Utiliser acme.sh

acme.sh est un script shell léger et sans dépendance et une bonne option si vous préférez ne pas installer les dépendances Python de Certbot.

Étape 1 : Installez acme.sh

curl https://get.acme.sh | sh -s email=your-email@example.com

Étape 2 : Enregistrez votre compte avec vos informations d’identification

Utilisez les valeurs de l’URL, de l”ID et du CODE ACME du serveur ACME sur votre page d’abonnement :

acme.sh --register-account \
--server dummy_server \
--eab-kid dummy_kid \
--eab-hmac-key dummy_hmac

Étape 3 : Délivrez votre certificat

Si vous utilisez la validation DNS (obligatoire pour les caractères Wildcard), spécifiez le plugin de votre fournisseur DNS. Si vous utilisez la validation HTTP avec une racine Web, spécifiez plutôt le chemin :

acme.sh --issue \
--server dumm_server \
-d example.com \
-w /var/www/example.com

Étape 4 : Installez le certificat

acme.sh n’installe pas automatiquement les certificats sur votre serveur Web comme le font les plugins de Certbot. Utilisez plutôt --install-cert pour copier les fichiers émis vers les emplacements attendus par votre serveur Web :

acme.sh --install-cert -d example.com \
--key-file /etc/ssl/example.com/key.pem \
--fullchain-file /etc/ssl/example.com/fullchain.pem \
--reloadcmd "systemctl reload nginx"

acme.sh configure également automatiquement une tâche cron lors de l’installation, de sorte que les renouvellements se produisent sans aucune autre action de votre part.

Utilisation de Win-Acme (Windows/IIS)

Si votre certificat doit être installé sur un serveur Windows exécutant IIS, win-acme fournit une configuration guidée par menu.

Étape 1 : Téléchargez et exécutez Win-Acme

Téléchargez la dernière version sur win-acme.com et exécutez wacs.exe en tant qu’administrateur.

Étape 2 : Choisissez un serveur ACME personnalisé

Lorsque vous y êtes invité, sélectionnez l’option permettant de configurer un serveur ACME personnalisé plutôt que d’utiliser la valeur par défaut (Let’s Encrypt). Saisissez l’URL du serveur ACME affichée sur votre page d’abonnement, par exemple https://acme.sectigo.com/v2/DV.

Étape 3 : Saisissez vos informations d’identification

win-acme détectera que le serveur nécessite une liaison de compte externe et vous demandera un ID de clé et une clé HMAC. Entrez la valeur du champ ID comme ID de clé et la valeur du champ ACME CODE comme clé HMAC.

Étape 4 : Terminez l’assistant

Suivez les invites restantes pour sélectionner le site ou le domaine que vous souhaitez sécuriser et la méthode de validation. win-acme installera une tâche planifiée pour gérer automatiquement les renouvellements à l’avenir.

Si vous rencontrez un problème non abordé ici, n’hésitez pas à contacter notre équipe d’assistance.