Générez des certificats HTTPS via acme.sh.
Qu'est-ce que acme.sh ?
acme.sh est un script Shell open source utilisé pour automatiser la génération et la gestion des certificats HTTPS.
Installer
curl https://get.acme.sh | sh -s [email protected]
Après l'installation, acme.sh apparaîtra dans votre répertoire personnel.
~/.acme.sh
Exécutez la commande suivante pour que les variables d'environnement d'acme.sh prennent effet.
source ~/.basrc
Générer des certificats
Avant de générer le certificat, acme.sh doit vérifier votre propriété du nom de domaine. Il existe plusieurs modes de vérification comme suit :
Vérification HTTP
Apache
Si vous utilisez un serveur Apache.
acme.sh --issue -d mydomain.com --apache
Serveur Nginx
Si vous utilisez un serveur nginx.
acme.sh --issue -d mydomain.com --nginx
Ajoutez le fichier au répertoire racine du site Web.
Vous pouvez également indiquer à acme.sh le répertoire racine de votre site Web, et acme.sh ajoutera automatiquement un fichier pour vérification.
acme.sh --issue -d mydomain.com --webroot /path-to-the-webroot-of-the-site
Vérification DNS
Ajouter un enregistrement manuellement
Exécuter la commande
acme.sh --issue --dns -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please
Ensuite, acme.sh générera l'enregistrement d'analyse correspondant et l'affichera. Il vous suffit d'ajouter cet enregistrement TXT dans votre panneau de gestion de domaine.
Ensuite, régénérez le certificat
acme.sh --renew -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please
Vérifiez via l'API du fournisseur de services DNS.
Cela devrait être le mode de vérification le plus couramment utilisé et recommandé. En prenant CloudFlare comme exemple, veuillez vous référer àhttps://github.com/acmesh-official/acme.sh/wiki/dnsapi pour appliquer des certificats d'autres prestataires de services.
Demandez l'API.
Vous pouvez obtenir votre clé API globale depuis votre page de profil Cloudflare, sous leSection des jetons API. Cliquez sur « Afficher » à côté de Clé API globale, vérifiez votre mot de passe Cloudflare et il vous sera révélé. Il s'agit d'une chaîne hexadécimale de 32 caractères que vous devez fournir à acme.sh en définissant la variable d'environnementCF_Key
à sa valeur. Vous devez également définirCF_Email
à l'adresse e-mail associée à votre compte Cloudflare ; il s'agit de l'adresse e-mail que vous saisissez lors de votre connexion à Cloudflare. Par exemple:
export CF_Key="763eac4f1bcebd8b5c95e9fc50d010b4"
export CF_Email="[email protected]"
Générer un certificat.
acme.sh --issue --dns dns_cf -d example.com -d '*.example.com'
Afficher les fichiers de certificat
Une fois le certificat généré, vous pouvez accéder à ~/.acme.sh/mydomain.com_ecc pour afficher les fichiers de certificat.fullchain.cer
est le fichier de certificat etmydomain.io.key
est le fichier de clé privée. Les deux sont des fichiers texte qui peuvent être téléchargés sur i18n.so pendant le processus de configuration du site.
Problèmes courants lors de l’utilisation d’acme.sh
CA
acme.sh est désormais par défaut ZeroSSL en tant qu'autorité de certification, mais rencontre souvent des problèmes d'accessibilité. Vous pouvez utiliser la commande suivante pour basculer l'autorité de certification sur Let's Encrypt.
acme.sh --set-default-ca --server letsencrypt
Générez un certificat de domaine générique.
Supposons que vous souhaitiez demander un certificat applicable àexample.com
et*.example.com
, vous pouvez utiliser la commande suivante pour générer un certificat de domaine générique.
acme.sh -d example.com -d *.example.com
Renouvellement du certificat
Une fois que acme.sh a généré le certificat, il ajoutera une tâche planifiée crontab pour mettre à jour périodiquement le certificat. Vous pouvez utiliser la commande suivante pour afficher la tâche planifiée, et le contenu mis à jour est également enregistré dans~/.acme.sh/mydomain.com_ecc
.
crontab -e