diff --git a/HowtoAcme.sh.md b/HowtoAcme.sh.md index 909e50ea..fb2d9d6f 100644 --- a/HowtoAcme.sh.md +++ b/HowtoAcme.sh.md @@ -141,17 +141,98 @@ Pour générer un certificat simple pour "www.example.com" avec un challenge `ht ### Challenge dns-01 -_TODO_ +Ce type de challenge est particulièrement utile quand le domaine n’est pas accessible en HTTP. +Il est même le seul moyen possible pour créer un certificat « wildcard ». + +Le challenge DNS se fait soit en manuel/interactif (acme.sh nous donne les instructions et attend qu’on indique que l’enregistrement DNS est en place), soit en mode automatique (en utilisant l’API du gestionnaire de la zone DNS). + + +#### Challenge DNS manuel + +Voir + +Cette procédure est à éviter autant que possible, car elle force à refaire l’opération au plus tard tous les 3 mois. +En revanche elle est pratique pour un certificat temporaire, en attendant que le mode DNS automatique ou un lemode http-01 soit possible. + +~~~ +# acme.sh --issue --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please --domain example.com +~~~ + +Le processus va se dérouler jusqu’à afficher les informations à ajouter dans la zone DNS : + +~~~ +Domain: '_acme-challenge.example.com' +TXT value: '3TFLt28SkxlU4fzktKqPCpE2-fLLaKEfeZCXdklD_GY +~~~ + +Une fois cet enregistrement ajouté dans votre zone et vérifié que les serveurs autoritaires renvoient bien l’info, on peut demander un renouvellement du certificat : + +~~~ +# acme.sh --renew --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please --domain example.com +~~~ + +#### Challenge DNS automatique + +Ce mode utilise l’API du gestionnaire de la zone DNS pour y insérer un enregistrement de challenge. +La procédure est légèrement différente pour chaque gestionnaire. + +##### Gandi LiveDNS + +Il faut [obtenir une clé d’API](https://doc.livedns.gandi.net/). + +Pour chaque certificat à créer de cette manière il faut exporter les accréditations : + +~~~ +# export GANDI_LIVEDNS_KEY="your key" +~~~ + +… puis demander la création du certificat : + +~~~ +# acme.sh --issue --dns dns_gandi_livedns --domain example.com --domain www.example.com +~~~ + +##### OVH/Kimsufi/SoYouStart + +Sur votre compte OVH il faut [créer une « application »](https://eu.api.ovh.com/createApp/) qui vous donnera une « clé d’application » et un « secret d’application ». + +Pour chaque certificat à créer de cette manière il faut exporter les accréditations : + +~~~ +# export OVH_AK="your application key" +# export OVH_AS="your application secret" +~~~ + +… puis demander la création du certificat : + +~~~ +# acme.sh --issue --dns dns_ovh --domain example.com --domain www.example.com +~~~ + +À la première invocation, il y aura une erreur qui indiquera qu’il faut authentifier l’application. + +~~~ +Using OVH endpoint: ovh-eu +OVH consumer key is empty, Let's get one: +Please open this link to do authentication: https://eu.api.ovh.com/auth/?credentialToken=n0Qbjm6wBdBr2KiSqIuYSEnixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +Here is a guide for you: https://github.com/Neilpang/acme.sh/wiki/How-to-use-OVH-domain-api +Please retry after the authentication is done. +Error add txt for domain:_acme-challenge.example.com +~~~ + +Il faut simplement cliquer sur le lien indiqué : https://eu.api.ovh.com/auth/?credentialToken=n0Qbjm6wBdBr2KiSqIuYSEnixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + +On peut alors relancer la commande de création du certificat. ## Mise en œuvre des certificats Lors de la génération d’un certificat, les fichiers de base sont stockés dans une structure interne (susceptible de changer sans préavis). Il faut donc utiliser les fonctions de déploiements afin d’installer les fichiers nécessaires. -Acme.sh propose 2 approches complémentaires pour la mise en œuvre des certificats : installation et déploiement. +Acme.sh propose 2 approches complémentaires pour la mise en œuvre des certificats : installation et déploiement. ### Installation locale -C'est le meilleur moyen de copier les fichiers de certificats dont on a besoin à un emplacement prévu et de recharger le service associé. +C’est le meilleur moyen de copier les fichiers de certificats dont on a besoin à un emplacement prévu et de recharger le service associé. Exemple pour un serveur web Apache local (voir ): @@ -159,11 +240,11 @@ Exemple pour un serveur web Apache local (voir . +Acme.sh propose toute un catalogue de "hooks" qui peuvent être utilisés. Ils permettent d’exécuter des séquences d’actions beaucoup plus complexes. Voir . Les hooks sont installés dans le dossier `/usr/local/lib/acme.sh/deploy`. @@ -171,7 +252,7 @@ Il en existe un pour HAproxy qui se charge de concaténer les bons éléments et Il en existe aussi un pour copier les fichiers sur un ou plusieurs serveurs distants par SSH. -La configuration des hooks passe par des variables d'environnement. +La configuration des hooks passe par des variables d’environnement. ~~~ # export DEPLOY_SSH_USER=me @@ -181,7 +262,7 @@ La configuration des hooks passe par des variables d'environnement. # acme.sh --deploy --domain www.example.com --deploy-hook ssh ~~~ -Les commandes sont à exécuter une seule fois à la mise en œuvre d'un certificat. Acme.sh se souvient des actions et les exécute toutes à nouveau lors des renouvelements, grace à la persistence de la configuration dans `/etc/acme.sh/www.example.com/www.example.com.conf`. +Les commandes sont à exécuter une seule fois à la mise en œuvre d’un certificat. Acme.sh se souvient des actions et les exécute toutes à nouveau lors des renouvelements, grace à la persistence de la configuration dans `/etc/acme.sh/www.example.com/www.example.com.conf`. ## Renouvellement d’un certificat