Modes supportés
- Mode Webroot
- Mode autonome
- Mode Apache
- Mode Nginx
- Mode DNS
- Mode alias DNS
- Mode sans état
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 root
alors, bien it is recommended
.
Installation avancée: https://github.com/Neilpang/acme.sh/wiki/Comment-installer
L’installateur effectuera 3 actions:
- Créer et copier
acme.sh
à votre répertoire personnel ($HOME
):~/.acme.sh/
. Tous les certificats seront également placés dans ce dossier. - Créer un alias pour:
acme.sh=~/.acme.sh/acme.sh
. - 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.com
ou /home/username/public_html
ou /var/www/html
est le dossier racine Web où vous hébergez vos fichiers de site Web. Vous devez avoir write access
dans 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-reload
ou 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:
- API CloudFlare.com
- API DNSPod.cn
- API CloudXNS.com
- API GoDaddy.com
- API PowerDNS.com
- API OVH, kimsufi, soyoustart et runabove
- API nsupdate
- API LuaDNS.com
- API DNSMadeEasy.com
- AWS Route 53
- aliyun.com (阿里 云) API
- API ISPConfig 3.1
- API Alwaysdata.com
- API Linode.com
- FreeDNS ( https://freedns.afraid.org/ )
- cyon.ch
- Domain-Offensive / Resellerinterface / API Domainrobot
- API Gandi LiveDNS
- Knot DNS API
- API DigitalOcean (native)
- ClouDNS.net API
- API NIOS d’Infoblox ( https://www.infoblox.com/ )
- VSCALE ( https://vscale.io/ )
- API Dynu ( https://www.dynu.com )
- API DNSimple
- API NS1.com
- API DuckDNS.org
- API Name.com
- API DNS gérée par Dyn
- Yandex PDD API ( https://pdd.yandex.ru )
- Service DNS Hurricane Electric ( https://dns.he.net )
- API UnoEuro ( https://www.unoeuro.com/ )
- INWX ( https://www.inwx.de/ )
- Servercow ( https://servercow.de )
- Namesilo ( https://www.namesilo.com )
- API InternetDN autoDNS ( https://internetx.com )
- DNS Azure
- API DNS de selectel.com (selectel.ru)
- API DNS zonomi.com
- API DreamHost.com
- API DirectAdmin
- KingHost ( https://www.kinghost.com.br/ )
- Zilore ( https://zilore.com )
- API Loopia.se
- acme-dns ( https://github.com/joohoi/acme-dns )
- 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’ renew
argument:
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 Encrypt
peut maintenant émettre des certificats ECDSA .
Et nous les soutenons aussi!
Réglez simplement le keylength
paramè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 keylength
paramètre ci-dessus.
Les valeurs valides sont:
- ec-256 (prime256v1, “ECDSA P-256”)
- ec-384 (secp384r1, “ECDSA P-384”)
- 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 -d
paramè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.
acme.sh
13. Comment mettre à jour 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
- Acme-minuscule: https://github.com/diafygi/acme-tiny
- 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.