Réponse mise à jour (voir la réponse originale ci-dessous)
Dans ma réponse d'origine, je me suis concentré sur le fait que le script que vous avez fourni n'est pas requis lors de l'utilisation de la renew
commande. Cependant, je ne me suis pas assuré que la renew
commande est réellement applicable dans ce scénario.
Comme cdhowie et bobpaul dans l'état des commentaires: certbot renew
est un mode non interactif qui - en conjonction avec le défi dns - vous oblige à fournir un script via le --manual-auth-hook
paramètre. Ce script doit être capable de créer un TXT
enregistrement. Vous pouvez également fournir un autre script à nettoyer ensuite via le --manual-cleanup-hook
paramètre.
Si vous fournissez ces paramètres, l'ensemble du processus s'exécutera automatiquement sans aucune interaction.
Si vous ne fournissez pas ces paramètres, certbot échouera:
/opt/certbot # certbot renew --force-renewal
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/foobar.w9f.de.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)
Si vous souhaitez renouveler vos certificats via le mode manuel, vous devez réexécuter les commandes que vous avez utilisées pour acquérir les certificats. Dans ce cas, votre script est une bonne option car la certonly
commande ne regarde pas les certificats / configuration actuels et vous oblige à la place à fournir les noms de domaine via le -d
paramètre ou en mode interactif.
lorsque j'exécute "certbot renouvellement", est-ce qu'il les renouvellera tous automatiquement sans utiliser mon script?
TL; DR: Oui, ça devrait.
Jetons un œil à la documentation de certbot :
Depuis la version 0.10.0, Certbot prend en charge une action de renouvellement pour vérifier l'expiration imminente de tous les certificats installés et tenter de les renouveler. La forme la plus simple est tout simplement
renouvellement de certbot
Jusqu'ici tout va bien.
Cette commande tente de renouveler tous les certificats précédemment obtenus qui expirent dans moins de 30 jours.
Ceci devrait répondre à votre question. Attention: je ne certbot
sais pas dans quelle mesure peut gérer les situations où vous déplacez les certificats vers différents répertoires.
Plus loin dans le même paragraphe:
Le même plugin et les mêmes options que ceux utilisés au moment de l'émission du certificat seront utilisés pour la tentative de renouvellement, sauf si vous spécifiez d'autres plugins ou options. Contrairement à certonly
, renew
agit sur plusieurs certificats et prend toujours en compte si chacun est proche de l'expiration.
Donc oui; certbot
devrait renouveler tous vos certificats sans l'aide de votre script.
Comment puis-je réellement créer un nouveau certificat en utilisant le défi DNS pour commencer?
Quel est le problème avec la commande que vous avez publiée au début de votre message?
certbot -d example.com --manual --preferred-challenges dns certonly
va acquérir un certificat pour example.com en utilisant le défi dns.
Les étapes pour créer un certificat sont les suivantes:
- Exécutez la
certbot
commande que vous avez publiée
- Attendez que la commande vous montre un enregistrement DNS TXT
- Créez cet enregistrement TXT
- Continuez la
certbot
commande
- Obtenez un certificat pour le domaine spécifié
- Supprimez l'enregistrement TXT (car vous n'en avez besoin que pour la création et un nouveau pour le renouvellement)
Si vous souhaitez automatiser ce processus complet, vous voudrez peut-être jeter un œil à un outil comme lego qui prend en charge quelques fournisseurs DNS .