ACME.sh

Modes supportés

1. Comment installer

1. Installer en ligne

Cochez ce projet: https://github.com/Neilpang/get.acme.sh

curl https://get.acme.sh | sh

Ou:

wget -O - https://get.acme.sh | sh

2. Ou, installer à partir de git

Cloner ce projet et lancer l’installation:

git clone https://github.com/Neilpang/acme.sh.git
 cd ./acme.sh
./acme.sh --install

Vous don't have to be rootalors, bien it is recommended.

Installation avancée: https://github.com/Neilpang/acme.sh/wiki/Comment-installer

L’installateur effectuera 3 actions:

  1. Créer et copier acme.shà votre répertoire personnel ( $HOME): ~/.acme.sh/. Tous les certificats seront également placés dans ce dossier.
  2. Créer un alias pour: acme.sh=~/.acme.sh/acme.sh.
  3. Créez un job cron quotidien pour vérifier et renouveler les certificats si nécessaire.

Exemple d’entrée Cron:

0 0 *  *  *  " /home/user/.acme.sh " /acme.sh --cron --home " /home/utilisateur/.acme.sh "  > / dev / null

Après l’installation, vous devez fermer le terminal actuel et le rouvrir pour que l’alias prenne effet.

Ok, vous êtes prêt à émettre des certificats maintenant.

Afficher le message d’aide:

root @ v1: ~ # acme.sh -h

2. Il suffit de délivrer un certificat

Exemple 1: Un seul domaine.

acme.sh --issue -d exemple.com -w /home/wwwroot/example.com

ou:

acme.sh --issue -d example.com -w / home / nom d'utilisateur / public_html

ou:

acme.sh --issue -d exemple.com -w / var / www / html

Exemple 2: plusieurs domaines dans le même certificat

acme.sh --issue -d example.com -d www.example.com -d cp.example.com -w /home/wwwroot/example.com

Le paramètre /home/wwwroot/example.comou /home/username/public_htmlou /var/www/htmlest le dossier racine Web où vous hébergez vos fichiers de site Web. Vous devez avoir write accessdans ce dossier.

Deuxième argument “example.com” est le domaine principal pour lequel vous souhaitez émettre le certificat. Vous devez avoir au moins un domaine là.

Vous devez pointer et lier tous les domaines à la même Webroot dir: /home/wwwroot/example.com.

Les certs seront placés dans ~/.acme.sh/example.com/

Les certificats seront renouvelés automatiquement tous les 60 jours.

Plus d’exemples: https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

3. Installez le certificat sur Apache / Nginx, etc.

Une fois le certificat généré, vous souhaiterez probablement installer / copier le certificat sur vos serveurs Apache / Nginx ou autres. Vous DEVEZ utiliser cette commande pour copier les certificats dans les fichiers cibles, N’UTILISEZ PAS les fichiers certs dans le dossier ~ / .acme.sh / , ils sont uniquement destinés à un usage interne, la structure des dossiers peut changer à l’avenir.

Exemple d’ Apache :

acme.sh --install-cert -d example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd      " service apache2 force-recharge "

Nginx exemple:

acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd      " service nginx force-recharge "

Seul le domaine est requis, tous les autres paramètres sont facultatifs.

Les informations de propriété et d’autorisation des fichiers existants sont conservées. Vous pouvez pré-créer les fichiers pour définir la propriété et l’autorisation.

Installe / copie la clé cert / sur le chemin de production Apache ou Nginx.

Le CERT sera renouvelé tous les 60 jours par défaut (ce qui est configurable). Une fois le CERT renouvelé, le service Apache / Nginx sera rechargé automatiquement par la commande: service apache2 force-reloadou service nginx force-reload.

S’il vous plaît prenez soin de: Le reloadcmd est très important. Le CERT peut être automatiquement renouvelé, mais, sans un ‘reloadcmd’ correct, le CERT ne peut pas être vidé sur votre serveur (comme Nginx ou Apache), votre site ne pourra pas afficher de CERT renouvelé dans 60 jours.

4. Utilisez le serveur autonome pour émettre un certificat

(vous devez être root / sudoer ou avoir l’autorisation d’écouter sur le port 80 (TCP))

Le port 80(TCP) DOIT être libre pour écouter, sinon vous serez invité à le libérer et réessayer.

acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com

Plus d’exemples: https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

5. Utiliser le mode Apache

(vous devez être root / sudoer, car il est nécessaire d’interagir avec le serveur Apache)

Si vous utilisez un serveur web, Apache ou Nginx, il est recommandé d’utiliser le Webroot mode.

En particulier, si vous utilisez un serveur Apache, vous pouvez utiliser le mode Apache à la place. Ce mode n’écrit aucun fichier dans votre dossier racine Web.

Il suffit de mettre la chaîne “apache” comme deuxième argument et cela forcera automatiquement l’utilisation du plugin apache.

acme.sh --issue --apache -d example.com -d www.example.com -d cp.example.com

Ce mode apache est seulement pour émettre le cert, il ne changera pas vos fichiers de configuration apache. Vous devrez configurer les fichiers de configuration de votre site Web pour utiliser le certificat par vous-même. Nous ne voulons pas gâcher votre serveur apache, ne vous inquiétez pas.

Plus d’exemples: https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

6. Utilisez le mode Nginx

(vous devez être root / sudoer, car il est nécessaire d’interagir avec le serveur Nginx)

Si vous utilisez un serveur web, Apache ou Nginx, il est recommandé d’utiliser le Webroot mode.

En particulier, si vous utilisez un serveur nginx, vous pouvez utiliser le mode nginx à la place. Ce mode n’écrit aucun fichier dans votre dossier racine Web.

Définissez simplement la chaîne “nginx” comme deuxième argument.

Il configurera automatiquement le serveur nginx pour vérifier le domaine, puis restaurera la configuration nginx à la version d’origine.

Donc, la configuration n’est pas modifiée.

acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com

Ce mode nginx est seulement pour émettre le cert, il ne changera pas vos fichiers de configuration nginx. Vous devrez configurer les fichiers de configuration de votre site Web pour utiliser le certificat par vous-même. Nous ne voulons pas gâcher votre serveur nginx, ne vous inquiétez pas.

Plus d’exemples: https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert

7. Intégration automatique de l’API DNS

Si votre fournisseur DNS prend en charge l’accès à l’API, nous pouvons utiliser cette API pour émettre automatiquement les certificats.

Vous n’avez rien à faire manuellement!

Actuellement, acme.sh prend en charge:

  1. API CloudFlare.com
  2. API DNSPod.cn
  3. API CloudXNS.com
  4. API GoDaddy.com
  5. API PowerDNS.com
  6. API OVH, kimsufi, soyoustart et runabove
  7. API nsupdate
  8. API LuaDNS.com
  9. API DNSMadeEasy.com
  10. AWS Route 53
  11. aliyun.com (阿里 云) API
  12. API ISPConfig 3.1
  13. API Alwaysdata.com
  14. API Linode.com
  15. FreeDNS ( https://freedns.afraid.org/ )
  16. cyon.ch
  17. Domain-Offensive / Resellerinterface / API Domainrobot
  18. API Gandi LiveDNS
  19. Knot DNS API
  20. API DigitalOcean (native)
  21. ClouDNS.net API
  22. API NIOS d’Infoblox ( https://www.infoblox.com/ )
  23. VSCALE ( https://vscale.io/ )
  24. API Dynu ( https://www.dynu.com )
  25. API DNSimple
  26. API NS1.com
  27. API DuckDNS.org
  28. API Name.com
  29. API DNS gérée par Dyn
  30. Yandex PDD API ( https://pdd.yandex.ru )
  31. Service DNS Hurricane Electric ( https://dns.he.net )
  32. API UnoEuro ( https://www.unoeuro.com/ )
  33. INWX ( https://www.inwx.de/ )
  34. Servercow ( https://servercow.de )
  35. Namesilo ( https://www.namesilo.com )
  36. API InternetDN autoDNS ( https://internetx.com )
  37. DNS Azure
  38. API DNS de selectel.com (selectel.ru)
  39. API DNS zonomi.com
  40. API DreamHost.com
  41. API DirectAdmin
  42. KingHost ( https://www.kinghost.com.br/ )
  43. Zilore ( https://zilore.com )
  44. API Loopia.se
  45. acme-dns ( https://github.com/joohoi/acme-dns )
  46. TELE3 ( https://www.tele3.cz )

Et:

API DNS du lexique: https://github.com/Neilpang/acme.sh/wiki/How-to-use-lexicon-dns-api (DigitalOcean, DNSimple, DNSMadeEasy, DNSPark, EasyDNS, Namesilo, NS1, PointHQ, Rage4 et Vultr etc.)

Plus d’API à venir …

Si votre fournisseur DNS ne figure pas dans la liste ci-dessus, vous pouvez écrire votre propre script API DNS facilement. Si vous le faites, veuillez envisager de soumettre une demande de tirage et de la contribuer au projet.

Pour plus de détails: Comment utiliser l’API DNS

8. Utilisez le mode manuel DNS:

Voir: https://github.com/Neilpang/acme.sh/wiki/dns-manual-mode en premier.

Si votre fournisseur DNS ne prend pas en charge l’accès API, vous pouvez ajouter l’enregistrement txt par votre main.

acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com

Vous devriez obtenir une sortie comme ci-dessous:

Ajoutez l'enregistrement txt suivant:
Domaine: _acme-challenge.example.com
Valeur txt: 9ihDbjYfTExAYeDs4DBUeuTo18KBzwvTEjUnSwd32-c

Ajoutez l'enregistrement txt suivant:
Domaine: _acme-challenge.www.example.com
La valeur de txt: 9ihDbjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Veuillez ajouter ces enregistrements txt aux domaines. En attente de la prise d'effet du DNS.

Alors juste réexécuté avec l’ renewargument:

acme.sh --renew -d example.com

OK c’est fait.

Attention, il s’agit du mode manuel dns, il ne peut pas être renouvelé automatiquement. vous devrez ajouter un nouvel enregistrement txt à votre domaine par votre main lorsque vous renouvelez votre certificat.

Veuillez utiliser le mode dns api à la place.

9. Emettre des certificats ECC

Let's Encryptpeut maintenant émettre des certificats ECDSA .

Et nous les soutenons aussi!

Réglez simplement le keylengthparamètre avec un préfixe ec-.

Par exemple:

Certificat ECC à domaine unique

acme.sh --issue -w /home/wwwroot/example.com -d exemple.com --keylength ec-256

Certificat ECC multi-domaine SAN

acme.sh --issue -w /home/wwwroot/example.com -d example.com -d www.example.com --keylength ec-256

Veuillez regarder le keylengthparamètre ci-dessus.

Les valeurs valides sont:

  1. ec-256 (prime256v1, “ECDSA P-256”)
  2. ec-384 (secp384r1, “ECDSA P-384”)
  3. ec-521 (secp521r1, “ECDSA P-521”, qui n’est pas encore supporté par Let’s Encrypt.)

10. Emettre des certificats génériques

C’est simple, donnez simplement un domaine générique comme -dparamètre.

acme.sh --issue -d example.com -d ' * .example.com '   --dns dns_cf

11. Comment renouveler les certificats

Non, vous n’avez pas besoin de renouveler les certificats manuellement. Tous les certificats seront renouvelés automatiquement tous les 60 jours.

Cependant, vous pouvez également forcer le renouvellement d’un cert:

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

ou, pour le certificat ECC:

acme.sh --renew -d example.com --force --ecc

12. Comment arrêter le renouvellement du cert

Pour arrêter le renouvellement d’un certificat, vous pouvez exécuter les opérations suivantes pour supprimer le certificat de la liste de renouvellement:

acme.sh --remove -d example.com [--ecc]

Le fichier cert / key n’est pas supprimé du disque.

Vous pouvez supprimer le répertoire correspondant (par exemple ~/.acme.sh/example.com) par vous-même.

13. Comment mettre à jour acme.sh

acme.sh est en développement constant, il est donc fortement recommandé d’utiliser le dernier code.

Vous pouvez mettre à jour acme.sh avec le dernier code:

acme.sh --upgrade

Vous pouvez également activer la mise à jour automatique:

acme.sh --upgrade --auto-upgrade

Ensuite, acme.sh sera mis à jour automatiquement.

Désactiver la mise à jour automatique:

acme.sh --upgrade --auto-upgrade 0

14. Changer serveur par défaut

Changer le serveur par défaut pour émettre un certificat ZeroSSL -> letsencrypt :

acme.sh --set-default-ca --server letsencrypt

15. Délivrer un cert à partir d’un CSR existant

https://github.com/Neilpang/acme.sh/wiki/Issue-a-cert-from-existing-CSR

16. Sous le capot

Parlez le langage ACME en utilisant shell, directement sur “Let’s Encrypt”.

FAIRE:

17. Remerciements

  1. Acme-minuscule: https://github.com/diafygi/acme-tiny
  2. Protocole ACME: https://github.com/ietf-wg-acme/acme

18. Licence et autres

La licence est GPLv3

S’il vous plaît Star et Fork moi.

Les problèmes et les demandes d’extraction sont les bienvenus.

 

Sources