bg-tutorials

Comment installer un certificat SSL ACME sur Plesk

Si vous gérez des sites Web sur un Plesk, il n’y a plus aucune raison de gérer les certificats manuellement. Avec la bonne configuration, vous pouvez automatiser l’émission, le renouvellement et l’installation des certificats SSL à l’aide du protocole ACME avec External Account Binding (EAB).

Plesk ACME SSL

Ce guide vous montre exactement comment installer un certificat SSL ACME sur Plesk (basé sur Linux) en utilisant ACME.sh, un client ACME léger qui fonctionne parfaitement avec Plesk.

Si vous disposez d’un hébergement mutualisé, il se peut que vous ne puissiez pas utiliser cette méthode. La plupart des environnements partagés n’autorisent pas l’accès à la racine ou aux scripts personnalisés. Ce guide fonctionne pour les VPS et les serveurs dédiés où vous contrôlez la pile d’hébergement.


Avant de commencer

Assurez-vous d’avoir préparé les éléments suivants avant de passer aux étapes suivantes :

  • Un serveur ou un VPS avec Plesk Obsidian
  • Accès SSH au serveur. Soit root, soit un utilisateur ayant les privilèges sudo.
  • Un domaine actif pointant vers le serveur via un enregistrement A ou AAAA
  • Port 80 ouvert et accessible publiquement (requis pour la validation HTTP-01)
  • Vos informations d’identification EAB du fournisseur SSL (EAB KID et EAB HMAC Key)

Points d’extrémité ACME à utiliser :

  • Sectigo: https://acme.sectigo.com/v2/DV
  • DigiCert: https://acme.digicert.com/v2/acme

Étape 1 : Vérifiez la racine du document de votre site Web dans Plesk

Vous aurez besoin du chemin d’accès au dossier racine de votre site pour que ACME.sh puisse placer correctement les fichiers de validation.

  1. Connectez-vous à Plesk
  2. Allez sur Sites web et domaines > yourdomain.com > Paramètres d’hébergement
  3. Copiez la valeur de la racine du document. Elle ressemble à ce qui suit : /var/www/vhosts/votredomaine.com/httpdocs
  4. Gardez ce chemin à portée de main, vous l’utiliserez dans les étapes suivantes.

Étape 2 : Activer l’accès SSH (si nécessaire)

Si votre plan d’hébergement ne permet pas l’utilisation de SSH :

  1. Aller à Sites web et domaines > yourdomain.com > Web Hosting Access
  2. Sous Accès au serveur via SSH, choisissez /bin/bash ou /usr/bin/bash.
  3. Sauvegarder les paramètres

Si vous êtes sur un hôte géré/partagé, contactez le support pour demander un accès SSH.


Étape 3 : Connexion à votre serveur via SSH

A partir de votre terminal local, connectez-vous au serveur :

ssh [email protected]

Ou, si vous utilisez un utilisateur non root :

ssh [email protected]

Étape 4 : Installer ACME.sh

Exécutez le programme d’installation officiel :

curl https://get.acme.sh | sh
source ~/.bashrc

Vérifiez ensuite la version pour confirmer qu’elle est installée :

acme.sh --version

En cas d’échec, assurez-vous que curl et git sont installés. Vous pouvez réexécuter l’installation avec --force si nécessaire.


Étape 5 : Enregistrez votre compte auprès de l’EAB

L’enregistrement ACME est une opération unique qui relie votre serveur à l’autorité de certification, de sorte que les futures demandes de certificat puissent être validées et traitées automatiquement.

Cette commande permet d’enregistrer votre compte ACME auprès de votre fournisseur SSL(Sectigo ou DigiCert) en utilisant vos identifiants uniques EAB.

acme.sh --register-account \
  --server https://acme.sectigo.com/v2/DV \
  --eab-kid YOUR_EAB_KID \
  --eab-hmac-key YOUR_EAB_HMAC_KEY \
  --accountemail [email protected]

Voici ce que signifie chaque partie :

  • acme.sh --register-account – Lancement de l’enregistrement du compte ACME
  • --server – URL ACME de votre fournisseur (Sectigo ou DigiCert)
  • --eab-kid – Votre clé d’identification EAB délivrée par le fournisseur
  • --eab-hmac-key – Votre clé secrète HMAC EAB (chaîne longue)
  • --accountemail – Votre email de contact pour le compte ACME

Cette commande doit être personnalisée avec vos véritables coordonnées de VAE et votre adresse électronique. Ne la copiez pas telle quelle.

Si vous laissez les espaces réservés comme YOUR_EAB_KID, la commande échouera avec une erreur d’authentification.

Une fois qu’il s’est exécuté avec succès, votre serveur est désormais autorisé à demander des certificats SSL à ce fournisseur ; il n’est pas nécessaire de s’inscrire à nouveau à l’avenir, sauf si vous changez de fournisseur ou d’informations d’identification.


Étape 6 : Préparer la validation HTTP

Créez le répertoire ACME challenge :

mkdir -p /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge

Vérifiez ensuite qu’il fonctionne :

echo "ok" > /var/www/vhosts/yourdomain.com/httpdocs/.well-known/acme-challenge/testfile
curl -I http://yourdomain.com/.well-known/acme-challenge/testfile

Vous devriez voir HTTP/1.1 200 OK. Si ce n’est pas le cas, vérifiez les règles du pare-feu, l’accès au port 80 ou le chemin d’accès à la racine du document.


Étape 7 : Contourner le HTTPS forcé pour ACME Path

Si votre site redirige tout le trafic vers HTTPS, la validation HTTP-01 sera rompue, à moins que vous n’autorisiez le dossier de contestation à la contourner.

Si vous utilisez Apache (par défaut sur Plesk Linux)

Modifiez votre fichier .htaccess dans la racine du document et ajoutez ceci en haut :

RewriteEngine On
RewriteRule ^.well-known/acme-challenge/ - [L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Si vous utilisez Nginx (ou si Nginx est en interface avec Apache)

Le .htaccess d’Apache ne vous aidera pas ici car Nginx gère la redirection en premier. A la place, vous devez ajouter une directive Nginx personnalisée dans Plesk :

  1. Allez sur Sites web et domaines > yourdomain.com > Paramètres Apache et Nginx
  2. Trouvez le champ intitulé Additional Nginx directives (Directives supplémentaires Nginx)
  3. Collez ceci :
location ^~ /.well-known/acme-challenge/ {
root /var/www/vhosts/yourdomain.com/httpdocs;
allow all;
try_files $uri =404;
}

Cela indique à Nginx de servir le chemin d’accès directement, sans redirection HTTPS ou proxy vers Apache. Sauvegardez et appliquez les changements.


Étape 8 : Délivrer le certificat

Vous pouvez maintenant demander le certificat. Voici un exemple avec Sectigo et deux variantes de domaine :

acme.sh --issue \
  -d yourdomain.com \
  -d www.yourdomain.com \
  -w /var/www/vhosts/yourdomain.com/httpdocs \
  --server https://acme.sectigo.com/v2/DV

Vous pouvez inclure autant de drapeaux -d que nécessaire. Une fois le certificat émis, ACME.sh enregistre le tout dans ce dossier : /root/.acme.sh/votredomaine.com/

Les deux fichiers dont vous aurez besoin pour Plesk sont les suivants :

  • yourdomain.com.key: il s’agit de votre clé privée
  • fullchain.cer: il s’agit de votre fichier de certificat, qui comprend la chaîne complète (votre certificat + la chaîne de l’autorité de certification).

Ce sont les fichiers que vous téléchargerez ou que vous utiliserez dans le CLI pour installer le certificat dans Plesk.


Étape 9 : Importer le certificat dans Plesk via l’interface utilisateur

  1. Allez à Sites web et domaines > yourdomain.com > Certificats SSL/TLS
  2. Cliquez sur Ajouter un certificat SSL/TLS
  3. Téléchargez le certificat (sélectionnez fullchain.cer) et la clé privée (sélectionnez yourdomain.com.key). Cliquez sur Enregistrer
  4. Retournez dans les Paramètres d’hébergement et sélectionnez ce certificat dans la section Support SSL/TLS.
  5. Cliquez sur OK ou Appliquer

Votre domaine utilise maintenant le certificat SSL ACME de tierce partie.


Etape 10 : Automatiser l’importation via Plesk CLI (Facultatif, idéal pour Cron)

Pour automatiser l’application de cert lors des prochains renouvellements, utilisez l’interface de programmation :

plesk bin certificate -c "acme-yourdomain" \
  -domain yourdomain.com \
  -cert-file /root/.acme.sh/yourdomain.com/fullchain.cer \
  -key-file  /root/.acme.sh/yourdomain.com/yourdomain.com.key

plesk bin domain -u yourdomain.com -ssl true -certificate-name "acme-yourdomain"
plesk bin httpdmng --reconfigure-domain yourdomain.com

Si la commande plesk n’est pas reconnue, essayez le chemin complet : /usr/sbin/plesk bin …


Étape 11 : Automatiser les renouvellements à l’aide d’un script de déploiement

ACME.sh renouvelle automatiquement les certificats environ 30 jours avant leur expiration. Mais nous allons intégrer un hook post-renew pour les appliquer automatiquement à Plesk.

1. Créez le script de déploiement

nano /usr/local/bin/plesk-acme-deploy.sh

Collez les éléments suivants :

#!/usr/bin/env bash
set -euo pipefail

DOMAIN="yourdomain.com"
CERT_DIR="/root/.acme.sh/${DOMAIN}"
CERT_NAME="acme-${DOMAIN}"

CERT_FILE="${CERT_DIR}/fullchain.cer"
KEY_FILE="${CERT_DIR}/${DOMAIN}.key"

/usr/sbin/plesk bin certificate -c "${CERT_NAME}" \
  -domain "${DOMAIN}" \
  -cert-file "${CERT_FILE}" \
  -key-file  "${KEY_FILE}"

/usr/sbin/plesk bin domain -u "${DOMAIN}" -ssl true -certificate-name "${CERT_NAME}"
/usr/sbin/plesk bin httpdmng --reconfigure-domain "${DOMAIN}"

echo "Plesk deploy complete for ${DOMAIN}"

2. Sauvegardez et rendez-le exécutable

chmod +x /usr/local/bin/plesk-acme-deploy.sh

3. Liez-le à ACME.sh

acme.sh --install-cert -d yourdomain.com \
  --key-file       ~/.acme.sh/yourdomain.com/yourdomain.com.key \
  --fullchain-file ~/.acme.sh/yourdomain.com/fullchain.cer \
  --reloadcmd "/usr/local/bin/plesk-acme-deploy.sh"

Désormais, chaque renouvellement s’appliquera à Plesk.


Étape 12 : Testez tout

Visitez votre site à l’adresse https://yourdomain.com. Le certificat doit être valide et indiquer votre autorité de certification.

Pour tester le renouvellement et le déploiement manuel, exécutez :

acme.sh --renew -d yourdomain.com --force

Ensuite, vous pouvez suivre le journal :

tail -n 60 ~/.acme.sh/acme.sh.log

Vous devriez voir un renouvellement réussi et « Plesk deploy complete » à la fin.


Problèmes courants et dépannage

Même avec la bonne configuration, les choses ne se passent pas toujours bien du premier coup, notamment en ce qui concerne la validation du domaine, les redirections ou les chemins d’accès aux fichiers. Vous trouverez ci-dessous les problèmes les plus courants que vous pourriez rencontrer lors de l’émission ou du renouvellement de votre certificat, ainsi que la manière de les résoudre rapidement.

Échec de la validation HTTP (404, timeout ou testfile not found)

Cela signifie que le fichier challenge de l’ACME n’est pas servi correctement.

  • Vérifiez la racine du document dans Plesk > Hosting Settings.
  • Assurez-vous que le port 80 est ouvert et qu’il n’est pas bloqué par votre pare-feu, votre panneau d’hébergement ou votre fournisseur de cloud.
  • Si vous avez une redirection vers HTTPS, assurez-vous que /.well-known/acme-challenge/ est exclu comme indiqué précédemment.

« Réponse non autorisée » ou « réponse non valide » lors de la délivrance

Le serveur ACME n’a pas pu vérifier votre défi, probablement pour l’une des raisons suivantes :

  • Les enregistrements DNS de votre domaine n’ont pas encore été mis à jour (enregistrement A ou AAAA manquant ou encore en cours de propagation).
  • Le fichier test n’était pas accessible, a été supprimé trop tôt ou a été bloqué par une règle.
  • Vous utilisez un CDN ou un WAF (comme Cloudflare) qui intercepte le trafic HTTP. Mettez temporairement le proxy en pause ou mettez le chemin d’accès à ACME sur liste blanche.

Rien ne se passe après le renouvellement

Le certificat est renouvelé, mais il n’est pas appliqué dans Plesk.

Assurez-vous que le chemin de votre script de déploiement est correct dans le –reloadcmd.

Vérifiez que le script est exécutable en le lançant :

chmod +x /usr/local/bin/plesk-acme-deploy.sh

Regardez à l’intérieur du journal de l’ACME avec :

tail -n 60 ~/.acme.sh/acme.sh.log

Les erreurs y apparaîtront.

L’importation de la CLI de Plesk échoue

Votre script de déploiement peut s’exécuter, mais la certification ne s’applique pas.

  • Si la commande plesk n’est pas trouvée, essayez d’utiliser le chemin complet : /usr/sbin/plesk
  • Vérifiez que les fichiers.key et .cer existent réellement et qu’ils portent les noms corrects.
  • Pour forcer une reconfiguration manuellement, exécutez :
plesk bin httpdmng --reconfigure-domain yourdomain.com

Derniers mots

Vous avez maintenant une installation SSL propre et entièrement automatisée sur votre serveur Plesk. A partir de maintenant, votre certificat se renouvellera automatiquement en arrière-plan et le script mettra à jour Plesk immédiatement lorsque vous émettrez un nouveau certificat. Vous avez pris le contrôle total du cycle de vie de votre certificat et vous vous êtes simplifié la vie.

Economisez 10% sur les certificats SSL en commandant aujourd’hui!

Émission rapide, cryptage puissant, confiance de 99,99 % du navigateur, assistance dédiée et garantie de remboursement de 25 jours. Code de coupon: SAVE10

Image détaillée d'un dragon en vol
Rédigé par

Rédacteur de contenu expérimenté spécialisé dans les certificats SSL. Transformer des sujets complexes liés à la cybersécurité en un contenu clair et attrayant. Contribuer à l'amélioration de la sécurité numérique par des récits percutants.