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.cerest 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.comet*.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